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

Метод bootKernel

Метод bootKernel принадлежит классу KernelTestCase и запускает ядро приложения. Он возвращает экземпляр ядра KernelInterface, с которым дальше работает тест: получает контейнер зависимостей, достаёт сервисы и проверяет их поведение. Первым параметром можно передать массив опций, например environment для выбора окружения и debug для режима отладки.

Синтаксис

protected static function bootKernel(array $options = []): KernelInterface

Пример

Давайте запустим ядро в тестовом окружении и получим сервис из контейнера:

<?php namespace App\Tests\Service; use App\Service\ArticleService; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class ArticleServiceTest extends KernelTestCase { public function testService(): void { $kernel = self::bootKernel(); $container = static::getContainer(); $service = $container->get(ArticleService::class); $this->assertInstanceOf(ArticleService::class, $service); $this->assertSame('test', $kernel->getEnvironment()); } } ?>

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

"OK (1 test, 2 assertions)"

Пример

Давайте передадим опции и запустим ядро в окружении 'prod' без отладки:

<?php namespace App\Tests\Kernel; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class EnvironmentTest extends KernelTestCase { public function testEnvironment(): void { $kernel = self::bootKernel([ 'environment' => 'prod', 'debug' => false, ]); $this->assertSame('prod', $kernel->getEnvironment()); $this->assertFalse($kernel->isDebug()); } } ?>

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

"OK (1 test, 2 assertions)"

Пример

Давайте проверим работу сервиса, который возвращает список статей:

<?php namespace App\Tests\Service; use App\Service\ArticleService; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class ArticleListTest extends KernelTestCase { public function testList(): void { self::bootKernel(); $container = static::getContainer(); $service = $container->get(ArticleService::class); $res = $service->getList(); $this->assertSame(['article', 'user', 'hello'], $res); } } ?>

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

"OK (1 test, 1 assertion)"

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

  • класс KernelTestCase,
    который является базовым для интеграционных тестов
  • метод getContainer,
    который возвращает контейнер зависимостей
  • метод createKernel,
    который создаёт экземпляр ядра приложения
  • класс WebTestCase,
    который расширяет KernelTestCase для HTTP-тестов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить