Версія фреймворка: 8.x

Тестування: Початок роботи

Вступ

Laravel створений з урахуванням тестування. Насправді підтримка тестування за допомогою PHPUnit надається нестандартно та aphpunit.xmlфайл уже налаштовано для вашої програми. Фреймворк також постачається із зручними допоміжними методами, які дозволяють виразно перевірити ваші програми.

За замовчуванням ваш додатокtestsкаталог містить два каталоги:FeatureіUnit. Модульні тести - це тести, орієнтовані на дуже невелику, ізольовану частину вашого коду. Насправді, більшість модульних тестів, ймовірно, зосереджені на одному методі. Тести функцій можуть перевірити більшу частину вашого коду, включаючи те, як кілька об'єктів взаємодіють між собою або навіть повний HTTP-запит до кінцевої точки JSON.

АнExampleTest.phpфайл міститься в обох файлахFeatureіUnitтестові каталоги. Після встановлення нової програми Laravel запустітьvendor/bin/phpunitу командному рядку для запуску тестів.

Навколишнє середовище

При запуску тестів черезvendor/bin/phpunit, Laravel автоматично встановить для середовища конфігурації значенняtestingчерез змінні середовища, визначені вphpunit.xmlфайл. Laravel також автоматично налаштовує сеанс і кеш наarrayдрайвер під час тестування, тобто дані сеансу чи кешу не зберігатимуться під час тестування.

Ви можете визначити інші значення конфігурації середовища тестування за необхідності.testingзмінні середовища можуть бути налаштовані вphpunit.xmlфайл, але не забудьте очистити кеш конфігурації за допомогоюconfig:clearРеміснича команда перед запуском тестів!

Крім того, ви можете створити файл.env.testingфайл у кореневій частині вашого проекту. Цей файл замінить файл.envфайл під час запуску тестів PHPUnit або виконання команд Artisan за допомогою--env=testingваріант.

Створення та проведення тестів

Щоб створити новий тест, використовуйтеmake:testКоманда ремісників:

// Create a test in the Feature directory...
php artisan make:test UserTest

// Create a test in the Unit directory...
php artisan make:test UserTest --unit
Тестові заглушки можна налаштувати за допомогоюзаглушка видавництва

Після створення тесту ви можете визначити методи тестування, як зазвичай, за допомогою PHPUnit. Для запуску тестів виконайтеphpunitабоartisan testкоманда з вашого терміналу:

<?php

namespace Tests\Unit;

use PHPUnit\Framework\TestCase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}
Якщо ви визначите своєsetUp/tearDownметодів у тестовому класі, обов’язково викликайте відповіднийparent::setUp()/parent::tearDown()методи батьківського класу.

Artisan Test Runner

На додаток доphpunitВи можете використовуватиtestКоманда Artisan для запуску тестів. Бігун тесту Artisan надає детальні звіти про тестування, щоб полегшити розробку та налагодження:

php artisan test

Будь-які аргументи, які можна передати вphpunitкоманда також може бути передана Ремісникуtestкоманда:

php artisan test --testsuite=Feature --stop-on-failure