Вступление

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

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

Файл предоставляется в обоих и тестовых каталогах. После установки нового приложения Laravel запустите тестирование из командной строки.ExampleTest.phpFeatureUnitphpunit

 

Среда

При запуске тестов через phpunitLaravel автоматически устанавливает среду конфигурации testingиз-за переменных среды, определенных в файле. Laravel также автоматически настраивает сеанс и кэш для драйвера во время тестирования, что означает, что данные сеанса или кеша не будут сохранены во время тестирования.phpunit.xmlarray

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

Кроме того, вы можете создать файл в корне вашего проекта. Этот файл переопределит файл при запуске тестов PHPUnit или выполнении команд Artisan с параметром..env.testing.env--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 Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $this->assertTrue(true);
    }
}

Если вы определяете свои собственные методы setUptearDownв тестовом классе, обязательно вызовите соответствующие методы / в родительском классе.parent::setUp()parent::tearDown()