Метод assertStatus
Метод assertStatus применяется к объекту ответа,
возвращаемому тестовым запросом, и проверяет,
совпадает ли фактический HTTP-статус ответа с ожидаемым.
Метод принимает один обязательный параметр -
целочисленный код статуса. Если статус ответа не совпадает
с указанным значением, тест будет считаться проваленным
с соответствующим сообщением об ошибке.
Синтаксис
<?php
$this->assertStatus($status);
?>
Пример
Давайте проверим, что маршрут для получения списка статей возвращает статус 200 при успешном запросе:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class ArticleTest extends TestCase
{
public function test_successful_articles_index()
{
$response = $this->get('/api/articles');
$response->assertStatus(200);
}
}
?>
Результат выполнения кода:
"Test passed: status code 200 matches expected"
Пример
Давайте проверим, что создание новой статьи возвращает статус 201 (Created) при валидных данных:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Models\Article;
class ArticleTest extends TestCase
{
public function test_article_creation_returns_created_status()
{
$data = [
'title' => 'New Article',
'content' => 'This is a new article content'
];
$response = $this->postJson('/api/articles', $data);
$response->assertStatus(201);
}
}
?>
Результат выполнения кода:
"Test passed: status code 201 matches expected"
Пример
Давайте проверим, что попытка получить несуществующую статью возвращает статус 404:
<?php
namespace Tests\Feature;
use Tests\TestCase;
class ArticleTest extends TestCase
{
public function test_non_existent_article_returns_not_found()
{
$response = $this->get('/api/articles/999');
$response->assertStatus(404);
}
}
?>
Результат выполнения кода:
"Test passed: status code 404 matches expected"
Пример
Давайте проверим, что при неудачной валидации данных возвращается статус 422 (Unprocessable Entity):
<?php
namespace Tests\Feature;
use Tests\TestCase;
class ArticleTest extends TestCase
{
public function test_invalid_data_returns_unprocessable_status()
{
$invalidData = ['title' => ''];
$response = $this->postJson('/api/articles', $invalidData);
$response->assertStatus(422);
}
}
?>
Результат выполнения кода:
"Test passed: status code 422 matches expected"
Смотрите также
-
метод
assertOk,
который проверяет статус 200 -
метод
assertCreated,
который проверяет статус 201 -
метод
assertNotFound,
который проверяет статус 404 -
метод
assertUnauthorized,
который проверяет статус 401