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

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

ПОЧАТОК · ПЕРЕКЛАДЕНО оновлено 24 вересня 2026

Перший тест · Pest

Цей розділ коротко показує, як писати тести на Pest. Після встановлення Pest у проєкті зʼявляться такі файли й теки:

├── 📂 tests
│   ├── 📂 Unit
│   │   └── ExampleTest.php
│   └── 📂 Feature
│   │   └── ExampleTest.php
│   └── TestCase.php
│   └── Pest.php
├── phpunit.xml

Тека tests - головна директорія, де лежать усі файли тестів. Усередині неї дві підтеки, Unit і Feature, у яких зберігаються модульні (unit) і функціональні (feature) тести відповідно. У файлі TestCase.php описують спільну функціональність або підготовку, яку треба використати в усіх тестах. Файл Pest.php слугує для налаштування тестового набору.

Крім того, у корені проєкту є файл phpunit.xml, через який задають різні опції PHPUnit під час запуску тестів. Pest побудований поверх PHPUnit, тому всі опції PHPUnit доступні й у Pest. Отже, будь-яке налаштування чи кастомізація у файлі phpunit.xml пошириться й на тести Pest.

Коли починаєте писати тести для проєкту, подумайте, як створювати й організовувати файли тестів. Зазвичай файли тестів мають суфікс Test.php, наприклад ExampleTest.php.

Ваш перший тест

Для першого тесту напишімо щось просте. Уявіть, що у вашому проєкті є глобальна функція sum, яка додає два числа. Щоб перевірити цю функцію, створіть файл Tests\Unit\SumTest.php з таким кодом.

test('sum', function () {
   $result = sum(1, 2);

   expect($result)->toBe(3);
});

Коли код тесту написано, час запустити тести через Pest. Після виконання команди ./vendor/bin/pest Pest покаже повідомлення про те, чи тести пройшли, чи впали.

sum

Замість функції test() Pest пропонує зручну функцію it(), яка просто додає перед описом тесту слово «it», роблячи тести читабельнішими.

it('performs sums', function () {
   $result = sum(1, 2);

   expect($result)->toBe(3);
});

У цьому випадку після запуску команди ./vendor/bin/pest у виводі буде опис «it performs sums» разом із результатом тесту.

itsum

Нарешті, функція describe() дозволяє групувати повʼязані тести. Наприклад, через describe() можна згрупувати всі тести, що стосуються функції sum().

describe('sum', function () {
   it('may sum integers', function () {
       $result = sum(1, 2);

       expect($result)->toBe(3);
    });
   
    it('may sum floats', function () {
       $result = sum(1.5, 2.5);

       expect($result)->toBe(4.0);
    });
});

Після запуску команди ./vendor/bin/pest у виводі буде опис «sum performs sums» разом із результатом тесту.

Expectation API

Як ви могли помітити в попередніх прикладах, для перевірок у коді тестів ми користувалися expectation API від Pest. Функція expect() - основа цього API, вона стверджує, що певні умови виконані.

Наприклад, у попередньому прикладі ми написали expect($result)->toBe(3), щоб переконатися: значення $result дорівнює 3. Expectation API в Pest має безліч інших функцій перевірки для тестування поведінки коду, зокрема toBeTrue(), toBeFalse() і toContain().

З expectation API перевірки виходять стислими й читабельними, тож одразу зрозуміло, що робить ваш код і як він має поводитися. У наступному розділі ми розглянемо найуживаніші функції перевірки з expectation API.

Assertion API

Expectation API в Pest зручний, але не єдиний доступний варіант. Можна користуватися й assertion API від PHPUnit: це стане в пригоді, якщо ви вже знайомі з ним або якщо потрібні складніші перевірки, яких немає в expectation API Pest.

test('sum', function () {
   $result = sum(1, 2);

   $this->assertSame(3, $result); // Те саме, що expect($result)->toBe(3)
});

Повну документацію assertion API від PHPUnit можна знайти на сайті PHPUnit: docs.phpunit.de/en/11.4/assertions.html


Переходьте до наступного розділу, щоб дізнатися більше про використання Expectation API: Очікування →

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

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

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