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

Метод request класса KernelBrowser

Метод request класса KernelBrowser выполняет HTTP-запрос к приложению Symfony в рамках функционального теста. Первым параметром передаётся HTTP-метод ('GET', 'POST' и т.д.), вторым - URL-адрес. Третьим параметром можно передать массив параметров запроса, четвёртым - массив cookies, пятым - массив файлов, шестым - массив серверных переменных. Метод возвращает объект Crawler для анализа ответа.

Синтаксис

$client->request( string $method, string $uri, array $parameters = [], array $cookies = [], array $files = [], array $server = [], string $content = null ): Crawler

Пример

Давайте выполним GET-запрос к главной странице приложения и проверим ответ:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testIndex(): void { $client = static::createClient(); $crawler = $client->request('GET', '/'); $this->assertResponseIsSuccessful(); $this->assertSelectorTextContains('h1', 'hello'); } } ?>

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

"OK (1 test, 2 assertions)"

Пример

Давайте выполним POST-запрос с параметрами и проверим содержимое ответа:

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testCreate(): void { $client = static::createClient(); $crawler = $client->request('POST', '/article', [ 'title' => 'abcde', 'content' => 'text', ]); $this->assertResponseIsSuccessful(); $this->assertSelectorTextContains('p', 'abcde'); $response = $client->getResponse(); $content = $response->getContent(); echo $content; } } ?>

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

<p>abcde</p>

Пример

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

<?php namespace App\Tests\Controller; use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; class ArticleControllerTest extends WebTestCase { public function testJsonRequest(): void { $client = static::createClient(); $crawler = $client->request( 'GET', '/api/article', [], [], [], ['HTTP_ACCEPT' => 'application/json'] ); $this->assertResponseIsSuccessful(); $this->assertResponseFormatSame('json'); echo $client->getResponse()->getContent(); } } ?>

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

{"id": 1, "title": "abcde"}

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

  • класс KernelBrowser,
    который используется для тестирования приложения
  • метод jsonRequest,
    который выполняет JSON-запрос
  • метод getResponse,
    который возвращает объект ответа
  • метод getCrawler,
    который возвращает объект Crawler
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить