2010-03-17 59 views
0

我正在实施WCF服务的服务合同。针对涉及外部依赖的复杂方法的测试驱动开发

根据TDD,我编写了一个测试用例,使用硬编码值传递它。

之后,我开始将真正的逻辑放入我的Service实现中。实际的逻辑依赖于3-4个外部服务和数据库。

我应该怎样处理我写的原始测试用例? 如果我保持相同,以便通过测试,它将不得不打电话给其他几个外部服务。

因此,我一般都有问题,如果我首先使用TDD编写业务Facade的测试用例,然后添加真实逻辑(如果涉及外部依赖性),那么我该怎么办?

回答

1

利用模拟框架(使用依赖性反转或只是一个工厂),以便您可以将假依赖关系注入到对象中。然后这些可以返回罐头响应和/或检查该类是如何利用依赖关系的。例如,如果您的代码调用要保存的存储库,那么我们并不真正关心存储库实际上保存到持久性存储库的业务方法测试,而只是在需要时调用它并返回了一些数据。你真正测试的是你的代码如何对依赖返回的内容做出反应,或者它是否正确使用 - 但不依赖于实际功能

理想情况下,第一个测试应该代表类/方法的工作方式并返回数据,所以一旦你完成测试仍然有效。