Метод getRequest
Метод getRequest класса KernelBrowser возвращает объект Request,
который представляет HTTP-запрос, выполненный браузером. Метод не принимает параметров
и возвращает текущий запрос, сохранённый внутри браузера после вызова request.
Это позволяет в тестах проверять заголовки, параметры, cookies и другие данные запроса.
Синтаксис
public function getRequest(): Request
Пример
Давайте создадим тест, в котором выполним GET-запрос и получим объект запроса:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->request('GET', '/article');
$request = $client->getRequest();
echo $request->getMethod();
}
}
?>
Результат выполнения кода:
"GET"
Пример
Давайте получим параметры запроса, переданные в строке URL:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testSearch(): void
{
$client = static::createClient();
$client->request('GET', '/article?search=abcde');
$request = $client->getRequest();
echo $request->query->get('search');
}
}
?>
Результат выполнения кода:
"abcde"
Пример
Давайте проверим заголовок запроса Accept:
<?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', [], [], [
'HTTP_ACCEPT' => 'application/json',
]);
$request = $client->getRequest();
echo $request->headers->get('Accept');
}
}
?>
Результат выполнения кода:
"application/json"
Смотрите также
-
класс
KernelBrowser,
который эмулирует браузер в тестах -
метод
request,
который выполняет HTTP-запрос в тесте -
метод
getResponse,
который возвращает объект ответа -
метод
getCrawler,
который возвращает объект Crawler для разбора HTML