Тут в статье расписан же процесс: вы для запуска тестов делаете прямо в бандле в папке tests отдельное микроприложение из нескольких файлов, со своим контейнером и его конфигурацией. В его контейнере вы можете вашему интерфейсу назначить конкретную мок-реализацию, аналогично тому как вы назначаете реализацию в обычном приложении. Интерфейсы же для этого и созданы: чтобы вы с легкостью могли его подменить для нужного кейса нужной реализацией.
Можно в приложении для тестов сделать mock-реализации интерфейсов (ничего не делающие по факту или отдающие "болваночные" данные, но реализующие контракт интерфейса) от которых зависит ваш бандл.
Спасибо.
В services.yml — регистрируются зависимости DI-контейнера, если вы хотите использовать autowiring в своем сервисе или если вы хотите внедрять свой сервис куда-либо еще в качестве зависимости, то необходимо добавить его в контейнер.
А в обычном проекте Symfony в папке Services вам не нужно регистрировать эти сервисы в services.yaml только потому, что они уже из коробки там прописаны всей папкой:
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}'
Тут в статье расписан же процесс: вы для запуска тестов делаете прямо в бандле в папке tests отдельное микроприложение из нескольких файлов, со своим контейнером и его конфигурацией. В его контейнере вы можете вашему интерфейсу назначить конкретную мок-реализацию, аналогично тому как вы назначаете реализацию в обычном приложении. Интерфейсы же для этого и созданы: чтобы вы с легкостью могли его подменить для нужного кейса нужной реализацией.
Можно в приложении для тестов сделать mock-реализации интерфейсов (ничего не делающие по факту или отдающие "болваночные" данные, но реализующие контракт интерфейса) от которых зависит ваш бандл.
Спасибо.
В
services.yml
— регистрируются зависимости DI-контейнера, если вы хотите использовать autowiring в своем сервисе или если вы хотите внедрять свой сервис куда-либо еще в качестве зависимости, то необходимо добавить его в контейнер.А в обычном проекте Symfony в папке Services вам не нужно регистрировать эти сервисы в
services.yaml
только потому, что они уже из коробки там прописаны всей папкой: