Laravel 5 - популярный фреймворк PHP. Он основан на шаблоне MVC, с которым легко работать. Он также имеет класс TestCase, который обозначает тестирование, и PHPUnit, который является средством запуска тестов в проекте.

PHPUnit всегда поставляется с проектом, когда мы создаем новый проект. Если его нет в проекте, вы можете установить его через Composer (следуйте этой инструкции).

Обычно способ тестирования основан на A: упорядочить, A: действие и A: утверждение. В первый раз мы делаем вид, что запускаем тест, который не прошел (сначала он должен завершиться ошибкой, потому что никакой реализации нет. Цель состоит в том, чтобы «напомнить себе, какие задачи необходимо выполнить и пройти тест»), затем мы проводим рефакторинг кода. Наконец, мы снова запускаем тест. Последний шаг должен иметь зеленый цвет, что означает, что вы прошли тест. если он красный, вернитесь в цикл и выполните рефакторинг кода.

Хорошо, давайте проверим (в самом основном)

Измените каталог на файл проекта и запустите командную строку в Терминале.

php artisan make:test PostTest

Будет создан тестовый файл с именем PostTest.php. Он находится в каталоге \ tests.

PostTest, который является расширением TestCase, по умолчанию предоставляет метод тестирования testExample. Если вы хотите протестировать другой сценарий, вам необходимо создать новый метод тестирования.

В testExample вот наш сценарий (Требование),

При посещении URL «/» в любом месте страницы мы должны увидеть строку «Create». Когда мы вводим что-то вроде «запроса» в форме с именем «поиск» и нажимаем кнопку «Перейти», чтобы отправить форму. Мы должны увидеть строку ‘result for“ query ”’ в URL-адресе страницы ‘/ search-result’

вот наш код в \ tests \ PostTest.php.

<?php

use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;



class PostTest extends TestCase
{
    /**
     * @return void
     */
    public function testExample()
    {
        $this->visit('/')
            ->see('Create')
            ->type('query', 'search')
            ->press('Go')
            ->see('result for "query"')
            ->seePageIs('/search-result');
    }
}

затем запустите команду phpunit в Терминале и нажмите Enter.

phpunit

Опять же, он должен выйти из строя с первого раза.

Рефакторинг

в \ resources \ views \ welcome.blade.php

При посещении URL «/» в любом месте страницы мы должны увидеть строку «Create». Когда мы вводим что-то вроде «запроса» в форме с именем «поиск» и нажимаем кнопку «Перейти», чтобы отправить форму.

<h4>Create</h4>
<form action="/search-result" method="post">
    <input id="search" type="text" name="search"/>
    <button type="submit" name="Go">Go</button>
</form>

в \ app \ http \ routes.php, потому что

Мы должны увидеть строку ‘result for“ query ”’ в URL-адресе страницы ‘/ search-result’

Route::post('/search-result',function(){
    return 'result for "query"';
});

Ооооо. завершаем рефакторинг.

Затем снова запустите PHPUnit runner. Наконец, все должно нормально работать.

Вот самое простое модульное тестирование в Laravel с использованием PHPunit, для более подробной информации о тестировании в Laravel посетите здесь.