proudmore
@proudmore

Как прописать специфичные для тест кейса определения в контейнер в API тестах?

Здравствуйте.

У меня есть ряд апи тестов, для которых я хочу прописать специфичные определения для ряда классов в контейнере внедрения зависимостей.

Проблема в том, что я могу такое сделать только в контексте Unit тестов, а в API тестах не могу, т.к. изменения применятся только к текущему процессу, в котором запущен тест, в то время как тест отправляет запросы к реальному приложению с тестовым конфигом. Подпихнуть тестовые данные для какого-то специфичного тест кейса не выйдет, только для всех сразу.

Сталкивался кто с этой проблемой? Если да, то как решали?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 2
glaphire
@glaphire
PHP developer
К сожалению я такую проблему не решала, но возможно подойтет ответ из ишью на гитхабе. Если нет, то надо попробовать грязно сеттить настройки окружения для тестов вплоть до рефлексии в каком-то setup/before методе (если разобраться, какие именно параметры надо подменить)
Ответ написан
Комментировать
@kot999
Backend software engineer
Если я правильно понял вопрос ( в чем я не уверен ), то это вопрос деплоя.
Сделайте отдельный сервер на который будете деплоить проект с api-test окружением, который будет на моменте инициализации yii init --env api-tests подсовывать другой конфиг контейнера, нужный для этих тестов.

ну или сделайте грязный хак, который мне лично не нравится, что-то типа
if (isset($_GET['apitests']) && $_GET['apitests'] ==true && $_SERVER['HTTP_CLIENT_IP'] == '{IP ADDR}'){
return  $devContainerConfig; 
}
return $prodContainerConfig;


который подменит конфиги в рантайме. Но это костылизм.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы