Метод disableReboot
Метод disableReboot класса KernelBrowser
отключает автоматическую перезагрузку ядра между
запросами в тестах. По умолчанию Symfony после
каждого запроса перезагружает ядро, чтобы сбросить
состояние контейнера. Отключение этой перезагрузки
позволяет сохранить состояние сервисов между
запросами, что бывает полезно при тестировании
долгоживущих сервисов или кеша. Метод не принимает
параметров и возвращает объект KernelBrowser
для цепочки вызовов.
Синтаксис
$browser->disableReboot();
Пример
Давайте создадим тест, в котором отключим перезагрузку ядра и выполним два запроса подряд:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testDisableReboot(): void
{
$client = static::createClient();
$client->disableReboot();
$client->request('GET', '/article');
$client->request('GET', '/article');
$this->assertResponseIsSuccessful();
}
}
?>
Результат выполнения кода:
"OK"
Пример
Давайте отключим перезагрузку ядра и проверим, что состояние сервиса сохраняется между запросами:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class CounterControllerTest extends WebTestCase
{
public function testCounterPersists(): void
{
$client = static::createClient();
$client->disableReboot();
$client->request('GET', '/counter/increment');
$client->request('GET', '/counter/increment');
$client->request('GET', '/counter/value');
$this->assertSelectorTextContains('body', '2');
}
}
?>
Результат выполнения кода:
2
Смотрите также
-
класс
KernelBrowser,
который предоставляет методы для тестирования -
метод
request,
который выполняет HTTP-запрос в тесте -
метод
getResponse,
который возвращает объект ответа -
метод
getProfile,
который возвращает профиль запроса