В настоящее время я работаю над тем, что я бы назвал интеграционными тестами. Я хочу убедиться, что если вызывается служба WCF, она будет делать то, что я ожидаю.
Давайте рассмотрим очень простой сценарий. Предположим, у нас есть объект договора, который мы можем приостановить или снять. Теперь написать тест «отложено» довольно просто. Вы создаете экземпляр контракта и выполняете код, который помещает его в код.
Вопрос, который у меня возникает, возникает, когда мы хотим проверить вызов в службу поддержки. Проблема в том, что приостановка контракта может быть довольно сложной, что приводит к изменению различных объектов. Поэтому обычно я использую шаблон Builder и делаю что-то вроде этого.
var onHoldContract = new ContractBuilder (). PutOnHold (). Build ();
Проблема, с которой я столкнулся, теперь заключается в том, что мне приходится в значительной степени копировать большую часть моего отложенного сервиса. Теперь, когда я меняю то, что что-то удерживает, у меня есть два места, которые я должен изменить.
Другой вариант, который сразу бросается в глаза, - это просто использовать сервис отложенного удержания как часть моей настройки теста, но теперь я связываю свой тест с успехом другого фрагмента кода, чего я не делаю как делать, так как это может привести к сбоям в одном месте, нарушая несвязанные тесты в другом месте (например, если приостановить не удалось).
Любые другие варианты, которые я здесь пропускаю? или мнения о том, какой метод предпочтительнее и почему?