Иногда очень удобно написать юнит-тест для какого-либо класса. Но что делать, если в этот класс нужно внедрить заранее сконфигурированные зависимые классы? Правильнее всего использовать сервис-контейнер из Symfony приложения. Для этого нужно немного изменить сигнатуру тестового класса:
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class MyTest extends KernelTestCase
{
/**
* @var ContainerInterface
*/
private $container;
public function setUp() {
self::bootKernel();
$this->container = self::$kernel->getContainer();
}
}
Всё, теперь можно создавать экземпляры классов с внедрёнными зависимостями:
$Object = $this->container->get(Object::class);