создать мок сервиса, прокинуть его в контейнер,
дальше создается handler, который в зависимостях имеет мокнутый сервис
Симфонейский контейнер ругается на то, что нельзя переопределить уже инициализированный сервис(и правильно впринципе делает, так как он уже все скомпилил).
Нагуглить получилось только костыли с рефлексией над контейнером, чего не очень бы хотелось делать.
Кто как работает с моками сервисов в симфе?
а ты свой класс, который тестишь, не из контейнера доставай class MyClass { public function __construct(SomeService $service, LoggerInterface $logger) } а в тесте $serviceMock = $this->createMock(SomeService::class); $logger = new NullLogger(); // или тоже мок, или взять из контейнера, если не нужно мокать $testingUnit = new MyClass($serviceMock, $logger);
Обсуждают сегодня