РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1201 of 1392 menu

Метод assertNotFound

Метод assertNotFound применяется к экземпляру TestResponse и проверяет, что HTTP-ответ имеет статус 404. Это удобно для тестирования ситуаций, когда запрашиваемый ресурс не найден, например, при обращении к несуществующей записи в базе данных или к неправильному URL-адресу. Метод не принимает никаких параметров и возвращает тот же экземпляр ответа для построения цепочек вызовов.

Синтаксис

<?php $this->get($uri)->assertNotFound(); ?>

Пример

Давайте протестируем, что при обращении к несуществующей статье возвращается статус 404. Для этого в тестовом методе мы отправим GET-запрос по пути с невалидным идентификатором:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleControllerTest extends TestCase { public function test_non_existent_article_returns_not_found() { $response = $this->get('/api/articles/99999'); $response->assertNotFound(); } } ?>

Результат выполнения кода:

"Test passed: response status is 404"

Пример

Теперь проверим ситуацию, когда статья существует, но запрос выполняется к неправильному маршруту. Метод assertNotFound успешно отработает, если сервер вернёт статус 404:

<?php namespace Tests\Feature; use Tests\TestCase; class RouteTest extends TestCase { public function test_invalid_route_returns_not_found() { $response = $this->get('/non-existent-page'); $response->assertNotFound(); } public function test_invalid_api_endpoint_returns_not_found() { $response = $this->getJson('/api/invalid/endpoint'); $response->assertNotFound(); } } ?>

Результат выполнения кода:

"All tests passed: 404 responses verified"

Пример

Метод assertNotFound можно использовать в цепочке с другими методами для более детальной проверки ответа. Например, проверим, что возвращается статус 404 и при этом в JSON-ответе есть ожидаемое сообщение об ошибке:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Models\Article; class ArticleControllerTest extends TestCase { public function test_not_found_article_returns_error_message() { $response = $this->getJson('/api/articles/99999'); $response->assertNotFound() ->assertJson([ 'message' => 'Article not found' ]); } } ?>

Результат выполнения кода:

"Test passed: response is 404 and contains error message"

Смотрите также

  • метод assertStatus,
    который проверяет произвольный HTTP-статус ответа
  • метод assertOk,
    который проверяет статус 200 OK
  • метод assertCreated,
    который проверяет статус 201 Created
  • метод assertForbidden,
    который проверяет статус 403 Forbidden
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить