Метод assertResponseStatusCodeSame
Метод assertResponseStatusCodeSame относится к классу
KernelBrowser и проверяет, что код состояния
HTTP-ответа равен ожидаемому значению. Первым параметром
передаётся ожидаемый код ответа, вторым (необязательным) -
сообщение об ошибке, которое выводится при несовпадении.
Метод удобен для проверки ответов сервера в функциональных
тестах, когда важно убедиться, что страница вернула
конкретный статус, например 200, 404 или
500.
Синтаксис
$client->assertResponseStatusCodeSame(int $expectedCode, string $message = '')
Пример
Давайте создадим клиент и проверим, что главная страница
возвращает код 200:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndexStatusCode(): void
{
$client = static::createClient();
$client->request('GET', '/');
$client->assertResponseStatusCodeSame(200);
}
}
?>
Результат выполнения кода:
"OK"
Пример
Давайте проверим, что несуществующая страница возвращает
код 404:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testNotFoundStatusCode(): void
{
$client = static::createClient();
$client->request('GET', '/not-found');
$client->assertResponseStatusCodeSame(404);
}
}
?>
Результат выполнения кода:
"OK"
Пример
Давайте передадим собственное сообщение об ошибке, которое будет выведено при несовпадении кода ответа:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testStatusCodeWithMessage(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$client->assertResponseStatusCodeSame(
200,
'The article page should return 200.'
);
}
}
?>
Результат выполнения кода:
"OK"
Пример
Давайте проверим код ответа после отправки формы методом
POST и убедимся, что сервер вернул 201:
<?php
namespace AppTestsController;
use SymfonyBundleFrameworkBundleTestWebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testCreateStatusCode(): void
{
$client = static::createClient();
$client->request('POST', '/article/create', [
'title' => 'abcde',
'body' => 'hello',
]);
$client->assertResponseStatusCodeSame(201);
}
}
?>
Результат выполнения кода:
"OK"
Смотрите также
-
метод
assertResponseIsSuccessful,
который проверяет успешность ответа -
метод
assertResponseRedirects,
который проверяет редирект ответа -
метод
getResponse,
который возвращает объект ответа -
класс
WebTestCase,
который используется для функциональных тестов