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

Класс KernelTestCase

Класс KernelTestCase является базовым классом для тестов, которым нужен доступ к контейнеру зависимостей Symfony, но не требуется эмуляция HTTP-запросов. Он загружает ядро приложения и позволяет получать сервисы через метод getContainer. Наследники класса получают доступ к static::getContainer, а также могут переопределить метод createKernel для указания собственного класса ядра.

Синтаксис

use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class MyTest extends KernelTestCase { public function testSomething(): void { self::bootKernel(); $container = static::getContainer(); } }

Пример

Давайте получим сервис из контейнера и проверим его работу:

<?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); $res = $service->getTitle(); $this->assertSame('article', $res); } } ?>

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

"article"

Пример

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

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

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

"test"

Пример

Давайте проверим наличие сервиса в контейнере:

<?php namespace App\Tests; use App\Service\ArticleService; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class ContainerTest extends KernelTestCase { public function testHasService(): void { self::bootKernel(); $container = static::getContainer(); $res = $container->has(ArticleService::class); $this->assertTrue($res); } } ?>

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

true

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

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