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

Метод assertResponseFormatSame

Метод assertResponseFormatSame относится к классу KernelBrowser и используется в функциональных тестах Symfony для проверки формата ответа сервера. Он сравнивает фактический формат ответа, возвращаемый методом getResponse, с ожидаемым форматом.

Формат ответа в Symfony определяется по заголовку Content-Type и может принимать значения, например, 'json', 'html', 'xml'. Метод принимает один обязательный параметр - ожидаемый формат в виде строки. Если формат не совпадает, тест завершается с ошибкой.

Синтаксис

assertResponseFormatSame(string $format)

Пример

Давайте создадим тест, который проверяет, что ответ контроллера возвращается в формате JSON:

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

Если контроллер возвращает JSON-ответ, тест пройдёт успешно. Если формат отличается, будет выброшено исключение с сообщением о несовпадении.

Пример

Давайте рассмотрим контроллер, который возвращает JSON-ответ, и проверим его формат в тесте:

<?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', name: 'article_index')] public function index(): JsonResponse { return $this->json(['title' => 'abcde']); } } ?>

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

{"title":"abcde"}

Пример

Давайте проверим, что ответ возвращается в формате HTML:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class PageControllerTest extends WebTestCase { public function testHtmlFormat(): void { $client = static::createClient(); $client->request('GET', '/page'); $this->assertResponseFormatSame('html'); } } ?>

Если контроллер возвращает HTML-страницу, тест пройдёт успешно. В противном случае тест упадёт с сообщением о неверном формате ответа.

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

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