Подскажите как работать с сервис контейнером в тестах codeception. В рамках одного теста достал сервис контейнер и заменил в нем зависимсоть. Правда пришлось использовать persistService иначе контейнер выкидывает мой замоканный класс при старте прила в тесте. В следующем тесте(в рамках того же тест класса) замокать класс уже не получается, так как сервис контейнер не дает заменить ранее замоканный класс и выкидывает ошибку вида ...service is already initialized, you cannot replace it. Есть метод unpersistService, который я сходу попробовал и он не сработал, а в детали его реализауии пока не вникал. Подскажите проблема в подходе? или же что-то необходимо доконфигурировать?
Зачем мокать сервисы в функциональных тестах? Это дичь.
Определите интерфейс, напишите имплементацию для тестов(InMemory/DummyBlahBlah) и подсовывайте в тест-среде в контейнер как обычный сервис. И уже на основе этих тест-имплементаций делайте нужные ассерты
Каким образом подсовывать?
переопределяя класс в services_test.yaml
kernel.shutdown()
Обсуждают сегодня