Метод enableProfiler класса KernelBrowser
Метод enableProfiler класса KernelBrowser
включает сбор данных профилировщика при выполнении
запросов в функциональных тестах. По умолчанию
профилировщик отключён в тестовом окружении, поэтому
перед обращением к методу getProfile необходимо
явно вызвать enableProfiler. Метод не принимает
параметров и возвращает тот же объект KernelBrowser,
что позволяет использовать цепочку вызовов.
Синтаксис
$client->enableProfiler();
Пример
Давайте включим профилировщик и получим данные о запросе после обращения к маршруту:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testIndex(): void
{
$client = static::createClient();
$client->enableProfiler();
$client->request('GET', '/article');
$profile = $client->getProfile();
echo $profile->getCollector('request')->getMethod();
}
}
?>
Результат выполнения кода:
"GET"
Пример
Давайте проверим количество выполненных SQL-запросов на странице:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testQueryCount(): void
{
$client = static::createClient();
$client->enableProfiler();
$client->request('GET', '/article');
$profile = $client->getProfile();
$queries = $profile->getCollector('db')->getQueryCount();
echo $queries;
}
}
?>
Результат выполнения кода:
3
Пример
Давайте включим профилировщик перед несколькими запросами и получим профиль последнего из них:
<?php
namespace App\Tests\Controller;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
class ArticleControllerTest extends WebTestCase
{
public function testMultipleRequests(): void
{
$client = static::createClient();
$client->enableProfiler();
$client->request('GET', '/article');
$client->enableProfiler();
$client->request('GET', '/user');
$profile = $client->getProfile();
echo $profile->getCollector('request')->getPathInfo();
}
}
?>
Результат выполнения кода:
"/user"
Смотрите также
-
класс
KernelBrowser,
который эмулирует браузер в тестах -
метод
getProfile,
который возвращает профиль последнего запроса -
метод
request,
который выполняет HTTP-запрос в тесте -
метод
createClient,
который создаёт экземпляр KernelBrowser