Метод assertResponseHeaderSame
Метод assertResponseHeaderSame относится к классу
KernelBrowser и используется в функциональных тестах
Symfony для проверки значения HTTP-заголовка в ответе.
Первым параметром передаётся имя заголовка, вторым -
ожидаемое значение. Если фактическое значение заголовка
отличается от ожидаемого, тест завершается с ошибкой.
Синтаксис
$client->assertResponseHeaderSame(string $headerName, string $expectedValue);
Пример
Давайте создадим контроллер, который возвращает ответ
с заголовком Content-Type и проверим его в тесте:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/article', name: 'article_index')]
public function index(): Response
{
$response = new Response('article');
$response->headers->set('Content-Type', 'text/plain');
return $response;
}
}
?>
Теперь напишем функциональный тест, который проверяет
значение заголовка Content-Type:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testHeader(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$client->assertResponseHeaderSame('Content-Type', 'text/plain');
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Пример
Давайте проверим пользовательский заголовок X-Custom-Header
в ответе контроллера:
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
class ArticleController extends AbstractController
{
#[Route('/user', name: 'article_user')]
public function user(): Response
{
$response = new Response('user');
$response->headers->set('X-Custom-Header', 'abcde');
return $response;
}
}
?>
Тест проверит, что заголовок X-Custom-Header
равен строке 'abcde':
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testCustomHeader(): void
{
$client = static::createClient();
$client->request('GET', '/user');
$client->assertResponseHeaderSame('X-Custom-Header', 'abcde');
}
}
?>
Результат выполнения теста:
OK (1 test, 1 assertion)
Смотрите также
-
метод
assertResponseHasHeader,
который проверяет наличие заголовка в ответе -
метод
assertResponseStatusCodeSame,
который проверяет код состояния ответа -
метод
assertResponseRedirects,
который проверяет редирект ответа -
класс
KernelBrowser,
который предоставляет методы для тестирования ответов