Для конкретных потребностей c, я должен протестировать класс Kernel
в проекте symfony 4.4, и все в порядке, кроме метода ниже registerContainerConfiguration()
. Он содержит только один метод, который принимает аргумент как Anonymous function
, как я могу полностью его протестировать? Я не могу найти способ войти в него.
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(function (ContainerBuilder $container) use ($loader) {
$container->loadFromExtension('framework', [
'router' => [
'resource' => 'kernel::loadRoutes',
'type' => 'service',
],
]);
if (!$container->hasDefinition('kernel')) {
$container->register('kernel', static::class)
->setSynthetic(true)
->setPublic(true)
;
}
$kernelDefinition = $container->getDefinition('kernel');
$kernelDefinition->addTag('routing.route_loader');
if ($this instanceof EventSubscriberInterface) {
$kernelDefinition->addTag('kernel.event_subscriber');
}
$this->configureContainer($container, $loader);
$container->addObjectResource($this);
});
}
Код, который я уже написал:
public function testRegisterContainerConfiguration(): void
{
$loader = $this->prophesize(LoaderInterface::class);
$loader->load()
->shouldBeCalledOnce() // here i'm stuck
;
$this->kernel->registerContainerConfiguration($loader->reveal());
}
PS: я попробовал этот , но это кажется, только издевается над анонимной функцией.