Интеграционное тестирование с зависимостью от внешнего сервиса - PullRequest
2 голосов
/ 26 октября 2011

Я сейчас пишу интеграционные / функциональные тесты для моей системы.Часть функциональности заключается в подключении к веб-службе через http (еще одна система, которую я запускаю).

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

Если веб-служба является независимым экземпляром, который всегда содержит действующие производственные данные, которые я загружаю вручную (возможно, сбрасывается каждый раз, когда я запускаю экземплярэто)?

Должен ли веб-сервис настраиваться и отключаться при каждом тесте?

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

1 Ответ

2 голосов
/ 26 октября 2011

Прежде всего, убедитесь, что вы знаете разницу между Функциональным тестированием и Интеграционным тестированием .Вы можете сделать довольно хороший функциональный анализ без больших усилий, которые требуются для интеграционного тестирования (создание веб-сервисов, доступ к базе данных).В основном, метод Mocking работает довольно хорошо, даже для имитации ответов уровня данных и поведения веб-службы (я считаю, что такие детали, как HTTP как транспорт могут быть проигнорированы в большинстве тестовых случаев)

Для такого интеграционного тестирования Я бы предложил иметь отдельную среду SIT, которая также включает в себя отдельную веб-службу и базу данных.

Если веб-служба является независимым экземплярому него всегда есть живые производственные данные, которые я перезагружаю вручную (возможно, сбрасывается каждый раз, когда я запускаю их экземпляр)?

Да, они должны быть полностью разделены, но данные могут быть сгенерированы / подготовлены вручную.Например, вы можете подготовить некоторый набор данных, который позволяет тестировать некоторые предопределенные тестовые наборы, это могут быть тестовые наборы данных, которые развертываются в экземпляре SIT DB до фактического запуска теста, а затем очищаются в тестовом TearDown.

Должен ли веб-сервис настраиваться и отключаться при каждом тесте?

Да, тесты должны быть изолированными друг от друга, поэтому не должны влиять на каждого в любомспособ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...