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 посетите здесь.