Тестирование введение

Содержание:


Введение

Ларавел построен так, что тесты — это часть системы. По факту, поддержка тестов PHPUnit включена из коробки, файл phpunit.xml уже настроен для вашего приложения. Фреймворк также включает ряд удобных методов-помощников, что позволяет вам проводить тестирование вашего приложения полностью.

По умолчанию, директория вашего приложения tests содержит две папки: Feature и Unit. Тесты unit являются тестами, которые сфокусированы на небольших изолированных участках кода. По факту, большинство unit тестов взаимодествуют с единственным методом. Функциональные тесты могут затрагивать большие участки вашего кода, включая включая такие моменты, когда несколько объектов взаимодействуют друг с другом или даже тестирование HTTP запроса полностью до точки преобразования в JSON.

Файл ExampleTest.php располгается и в директории Feature и в директории Unit. После установки нового приложения Laravel, выполните phpunit в командной строке для запуска ваших тестов.


Окружение

При выполнении тестов через phpunit, Ларавел автоматически установит конфигурацию окружения как тестовую testing, в силу того, что в файле phpunit.xml определены соотвествующие переменные. Ларавел также автоматически настраиивает драйвера сессий и кэша на array на время проведения тестов, что означает, что данные сессии или кэша не будут сохранены во время тестов.

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

Дополнительно вы можете создать файл .env.testing в корневой директории вашего проекта. Этот файл переопределит файл .env при выполнении тестов PHPUnit или выполнении команд Artisan с опцией --env=testing.


Создание и запуск тестов

Чтобы создать новый тест, используйте команду Artisan 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 из вашего терминала:

<?php

namespace Tests\Unit;

use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;

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