<? phpukraine ДОКУМЕНТАЦІЯ
⌕Пошук по платформі
Документація українською

Переклад офіційної документації українською. Кожен розділ показує стан готовності: недоперекладене позначене відкрито, а не приховане.

ОСНОВИ · ПЕРЕКЛАДЕНО оновлено 29 вересня 2026

Залежності тестів · Pest

Іноді тест не пройде, поки перед ним не станеться щось інше. Скажімо, перевірити, що користувачі можуть змінювати свої акаунти, є сенс лише тоді, коли ви вже переконалися, що акаунт узагалі можна створити.

Для таких випадків Pest має метод depends(): «дочірній» тест указує, що він залежить від одного чи кількох «батьківських» тестів.

test('parent', function () {
    expect(true)->toBeTrue();
});

test('child', function () {
    expect(false)->toBeFalse();
})->depends('parent');

У цьому прикладі тест child запуститься після того, як тест parent успішно завершиться.

Якщо тест parent провалиться, тест child буде пропущено, а в результатах тестів зʼявиться відповідне повідомлення.

test('parent', function () {
    expect(true)->toBeFalse();
});

test('child', function () {
    expect(false)->toBeFalse();
})->depends('parent');

Наведений вище приклад дає такий вивід:

Не забувайте, що функція it() за замовчуванням додає до назви тесту префікс «it». Тому, коли посилаєтеся на назву тесту через метод depends(), префікс «it » потрібно вказати.

it('is the parent', function () {
    expect(true)->toBeTrue();
});

test('child', function () {
    expect(false)->toBeFalse();
})->depends('it is the parent');

Результат:

Батьківські тести можуть навіть повертати значення, доступні як аргументи в тесті child.

test('parent', function () {
    expect(true)->toBeTrue();

    return 'from parent';
});

test('child', function ($parentValue) {
    var_dump($parentValue); // from parent

    expect($parentValue)->toBe('from parent');
})->depends('parent');

Тестові можна задати й кілька залежностей. Але тоді всі батьківські тести мусять пройти, а значення, які повернув кожен із них, будуть доступні як параметри функції в тому самому порядку, в якому вказані залежності.

test('a', function () {
    expect(true)->toBeTrue();

    return 'a';
});

test('b', function () {
    expect(true)->toBeTrue();

    return 'b';
});

test('c', function () {
    expect(true)->toBeTrue();

    return 'c';
});

test('d', function ($testA, $testC, $testB) {
    var_dump($testA); // a
    var_dump($testB); // b
    var_dump($testC); // c
})->depends('a', 'b', 'c');

Залежності між тестами трапляються нечасто, але вони допомагають оптимізувати тести й рідше створювати ті самі ресурси заново. У наступному розділі ми розглянемо, як створювати плагіни: Створення плагінів

Стан перекладу

Перекладаємо з офіційної документації, розділ за розділом, і не ховаємо недоперекладене. Помітили неточність у терміні чи реченні: напишіть, виправимо.

43%
Готовності
0
У роботі
13
Ще не перекладено
Глосарій термінів