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

Метод assertResponseHasHeader

Метод assertResponseHasHeader относится к классу KernelBrowser и проверяет, что в ответе присутствует указанный HTTP-заголовок. Первым параметром передаётся имя заголовка в виде строки. Метод не проверяет значение заголовка, а только факт его наличия. Если заголовка в ответе нет, тест падает с ошибкой.

Синтаксис

$client->assertResponseHasHeader(string $headerName)

Пример

Давайте создадим контроллер, который возвращает ответ с заголовком 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('/article', name: 'article_index')] public function index(): Response { $response = new Response('hello'); $response->headers->set('X-Custom-Header', 'abcde'); return $response; } } ?>

Теперь напишем тест, который проверяет наличие этого заголовка:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testHeaderExists(): void { $client = static::createClient(); $client->request('GET', '/article'); $client->assertResponseHasHeader('X-Custom-Header'); } } ?>

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

OK (1 test, 1 assertion)

Пример

Давайте проверим наличие стандартного заголовка Content-Type в ответе:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/json', name: 'article_json')] public function json(): JsonResponse { return $this->json(['status' => 'ok']); } } ?>

Тест проверяет, что заголовок Content-Type присутствует:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testContentTypeHeader(): void { $client = static::createClient(); $client->request('GET', '/article/json'); $client->assertResponseHasHeader('Content-Type'); } } ?>

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

OK (1 test, 1 assertion)

Пример

Давайте убедимся, что тест падает, если заголовка в ответе нет:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testMissingHeader(): void { $client = static::createClient(); $client->request('GET', '/article'); $client->assertResponseHasHeader('X-Missing-Header'); } } ?>

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

Failed asserting that the response has the "X-Missing-Header" header.

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

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить