Я уже нашел немного информации, такой как Symfony2 для доступа к частным сервисам в тестах или Заменить Symfony сервис в тестах для php 7.2
Но я не знаю почему он не работает.
У меня есть служба автоматического подключения.
class MailService {
public function __construct(\Swift_Mailer $mailer, Environment $twig)
{
$this->mailer = $mailer;
$this->twig = $twig;
}
}
config / services_test.yaml
services:
# default configuration for services in *this* file
_defaults:
#autowire: true # Automatically injects dependencies in your services.
#autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
public: true
test.swiftmailer.transport: '@Swift_Mailer'
И когда я пытаюсь заменить.
$mailer = $this->getMockBuilder(\Swift_Mailer::class)
->disableOriginalConstructor()
->getMock();
$mailer->expects($this->once())->method('send')->willReturn(1);
self::$container->set('swiftmailer.mailer.default', $mailer);
self::$container->set('swiftmailer.default', $mailer);
self::$container->set('swiftmailer.mailers', [$mailer]);
Но я не знаю, почему это не работает.
Есть идеи? :)