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

Метод assertRequestAttributeValueSame

Метод assertRequestAttributeValueSame относится к классу WebTestCase и проверяет, что атрибут запроса с указанным именем имеет ожидаемое значение. Первым параметром передаётся имя атрибута, вторым - ожидаемое значение. Метод удобно использовать для проверки параметров маршрута, которые Symfony сохраняет в атрибутах запроса.

Синтаксис

assertRequestAttributeValueSame(string $name, string $expectedValue)

Пример

Давайте создадим контроллер, который принимает параметр slug из URL и возвращает его в ответе:

<?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/{slug}', name: 'article_show')] public function show(string $slug): Response { return new Response($slug); } } ?>

Теперь напишем тест, который проверяет, что атрибут slug запроса равен строке 'abcde':

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

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

OK (1 test, 1 assertion)

Пример

Давайте создадим контроллер с двумя параметрами маршрута category и id:

<?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/{category}/{id}', name: 'article_item')] public function item(string $category, int $id): Response { return new Response($category . ' ' . $id); } } ?>

Напишем тест, который проверяет оба атрибута запроса:

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

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

OK (1 test, 2 assertions)

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

  • метод request,
    который выполняет запрос к приложению
  • метод createClient,
    который создаёт клиент для тестирования
  • метод assertRouteSame,
    который проверяет имя маршрута
  • метод assertResponseIsSuccessful,
    который проверяет успешность ответа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить