Тестирование введение
Содержание:
Введение
Ларавел построен так, что тесты — это часть системы. По факту, поддержка тестов 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()
для класса родителя.