@rumasterov

Как написать функциональный тест для функции которая использует внешний веб-сервис?

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

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

Может кто-то сталкивался с такой ситуацией?

В своих классах я работаю с этим внешним веб-сервис через клиент, который указан в компонентах в конфиге и вызывается вот так: Yii::$app->provider->approveOrder($order);
  • Вопрос задан
  • 123 просмотра
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1) использовать тестовое окружение, надежно и просто
2) инкапсулировать работу с сервисом в отдельный сервис и в тестах его подменять на мок/стаб.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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