Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Symfony\Component\DependencyInjection\Exception\RuntimeException: Cannot autowire service «bundle_controller_service_id»: argument "$eventStore" of method «My\Bundle\Namespace\CallbackController::__construct()» references interface «Vendor\Contracts\BundleEventStoreInterface» but no such service exists. Did you create a class that implements this interface?
Можно в приложении для тестов сделать mock-реализации интерфейсов (ничего не делающие по факту или отдающие "болваночные" данные, но реализующие контракт интерфейса) от которых зависит ваш бандл.
Тут в статье расписан же процесс: вы для запуска тестов делаете прямо в бандле в папке tests отдельное микроприложение из нескольких файлов, со своим контейнером и его конфигурацией. В его контейнере вы можете вашему интерфейсу назначить конкретную мок-реализацию, аналогично тому как вы назначаете реализацию в обычном приложении. Интерфейсы же для этого и созданы: чтобы вы с легкостью могли его подменить для нужного кейса нужной реализацией.
Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование