Класс KernelBrowser
Класс KernelBrowser представляет собой
HTTP-клиент, который работает поверх ядра
Symfony. Он позволяет выполнять запросы к
приложению без запуска веб-сервера. Объект
класса создаётся методом createClient
из класса WebTestCase. Первым параметром
метод request принимает HTTP-метод,
вторым - URI запроса.
Синтаксис
$client = static::createClient();
$client->request(method, uri, parameters);
Пример
Давайте выполним 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', '/');
$response = $client->getResponse();
echo $response->getContent();
}
}
?>
Результат выполнения кода:
"hello"
Пример
Давайте отправим POST-запрос с параметрами формы и проверим код ответа:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testCreate(): void
{
$client = static::createClient();
$client->request('POST', '/article/create', [
'name' => 'abcde',
'text' => 'article'
]);
$status = $client->getResponse()->getStatusCode();
echo $status;
}
}
?>
Результат выполнения кода:
200
Пример
Давайте перейдём по ссылке на странице
с помощью метода clickLink:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testClickLink(): void
{
$client = static::createClient();
$client->request('GET', '/');
$crawler = $client->clickLink('user');
echo $crawler->filter('h1')->text();
}
}
?>
Результат выполнения кода:
"user"
Смотрите также
-
метод
request,
который выполняет HTTP-запрос к приложению -
метод
getResponse,
который возвращает объект ответа -
метод
getCrawler,
который возвращает объект Crawler -
класс
WebTestCase,
который создаёт клиент KernelBrowser