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

Метод createKernel

Метод createKernel принадлежит классу KernelTestCase и создаёт экземпляр ядра приложения. Метод объявлен как protected static и возвращает объект, реализующий интерфейс KernelInterface. Параметров метод не принимает. При переопределении в собственном тесте метод позволяет указать собственный класс ядра, окружение и режим отладки.

Синтаксис

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

Пример

Давайте создадим тест, который наследуется от KernelTestCase и получает контейнер через метод getContainer, не переопределяя createKernel:

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

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

"OK (1 test, 1 assertion)"

Пример

Давайте переопределим метод createKernel, чтобы запустить приложение в окружении 'test' с включённой отладкой:

<?php namespace App\Tests\Service; use App\Kernel; use App\Service\ArticleService; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\HttpKernel\KernelInterface; class ArticleServiceTest extends KernelTestCase { protected static function createKernel(array $options = []): KernelInterface { return new Kernel('test', true); } public function testService(): void { self::bootKernel(); $container = static::getContainer(); $service = $container->get(ArticleService::class); $this->assertInstanceOf(ArticleService::class, $service); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

Давайте переопределим метод createKernel и вернём ядро с отключённой отладкой:

<?php namespace App\Tests\Service; use App\Kernel; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\HttpKernel\KernelInterface; class ArticleServiceTest extends KernelTestCase { protected static function createKernel(array $options = []): KernelInterface { return new Kernel('test', false); } public function testEnvironment(): void { self::bootKernel(); $kernel = static::$kernel; $environment = $kernel->getEnvironment(); $this->assertSame('test', $environment); } } ?>

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

"OK (1 test, 1 assertion)"

Пример

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

<?php namespace App\Tests; use App\Kernel; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; use Symfony\Component\HttpKernel\KernelInterface; class KernelTest extends KernelTestCase { protected static function createKernel(array $options = []): KernelInterface { return new Kernel('test', true); } public function testKernelInstance(): void { $kernel = static::createKernel(); $this->assertInstanceOf(Kernel::class, $kernel); } } ?>

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

"OK (1 test, 1 assertion)"

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

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