Консольные команды
создание тестов
1 2 3 4 5 6 |
# // создание теста в каталоге Feature php artisan make:test UserTest // создание теста в каталоге Unit php artisan make:test UserTest --unit |
запуск тестов
1 2 3 4 5 6 7 8 9 10 |
# // запуск тестов в linux системе phpunit // запуск тестов в windows vendor\bin\phpunit // vendor/bin/phpunit // выводим в красивом виде, выполненные тесты vendor\bin\phpunit --testdox |
Примеры функции тестирования различных ситуаций в Laravel
проверим статус ответа(тестирование роутеров)
1 2 3 4 5 6 7 8 9 10 11 |
# /** * Route "/login" * * @return void */ public function testWebRoutesLogin(): void { $response = $this->call('GET', '/login'); $response->assertStatus(200); } |
1 2 3 4 5 6 7 8 9 10 11 |
# /** * Route "/account/{page}" * * @return void */ public function testWebRoutesAccount(): void { $response = $this->call('GET', '/account/{page}'); $response->assertStatus(200); } |
сравнение возвращаемого страницей контента
1 2 3 4 5 6 7 8 9 10 11 |
# /** * Content compare * * @return void */ public function testContentCompare(): void { $response = $this->call('GET', 'user/profile'); $this->assertEquals('Hello World', $response->getContent()); } |
проверим что бы в ответе приходил JSON в котором обязательно есть следующие элементы [‘el1’, ‘el2’, ‘el3’]
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# /** * Responce structure contains arr ['status', 'data', 'message'] * * @return void */ public function testApiTest() { $this->post('/test') ->assertJsonStructure([ 'el1', 'el2', 'el3' ]); } |
проверка успешной авторизации пользователя через api(в ответе приходит JSON)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# public function testBasicTest() { $response = $this->json( 'POST', '/api/login', [ 'email' => 'user@mail.ru', // верные данные 'password' => '123', // верные данные ]); $response ->assertStatus(200) ->assertJson([ 'status' => 'success', 'data' => true, // есть поле data в ответе, не важно чему равно 'message' => true ]); } |
Функции тестирования в Laravel
Перечислим основные функции предоставляемые для тестирования в Laravel
1 |
# |
Комментарии закрыты!