symfony codeception Мок валидатора - подмена сетевого валидатора для функциональных тестов
Primary tabs
Возможное решение
Для начала нужно получить именно тот контейнер, который реально используется для эмуляции сетевого запроса в ваших тестах.
После того как вы определились на чем именно (на каком объекте) вызывать getContainer() или подобный метод получающий контейнер, мок можно провести с помощью метода вроде:
protected KernelBrowser $client; protected function mockSymfonyContainerElement(string $className, object $object) { $this->client->getContainer()->set($className, $object); }
Например:
protected function mockTagsValidator() { $this->mockSymfonyContainerElement( \App\Validator\TagsExistValidator::class, new TagsExistValidatorMock() ); }
Комментарии к этой же проблеме в видео:
- телеграм: https://t.me/prgblg/59
- ютуб: https://youtu.be/D0dbhk1ChHo
- вк: https://vkvideo.ru/video-58271214_456239512
Прочие материалы
Судя по всему проблема это известная: https://stackoverflow.com/questions/5057...
How to mock service with symfony 4 in functional tests?
Что посмотреть:
- Документация: https://symfony.com/doc/current/testing....
- How do I mock services in Symfony DIC in functional testing? : https://github.com/Codeception/module-sy...
- Интересный пример: https://www.a-broad-view.com/tech-talk/r...
- Struggling with Service Mocking: Functional Testing in Symfony: https://github.com/symfony/symfony/discu...
как сделать мок класса из контейнера symfony в codeception для функционального теста cest-класса
symfony mock custom validator in test
- Log in to post comments
- 193 reads
vedro-compota
Fri, 05/02/2025 - 18:16
Permalink
Команда для создания хэлпера
Команда для создания хэлпера для мока:
_____________
матфак вгу и остальная классика =)
vedro-compota
Mon, 05/12/2025 - 17:33
Permalink
Service `container` is
Ошибка для кода:
на базе идеи https://github.com/Codeception/module-sy...
_____________
матфак вгу и остальная классика =)
vedro-compota
Mon, 05/12/2025 - 21:53
Permalink
черновик неработающего
черновик неработающего решения:
_____________
матфак вгу и остальная классика =)