我在尝试理解在单元测试中模拟我的WCF应用程序的目的时遇到了困难。我已经阅读了这篇文章Testing with mock objects,我相信我知道为什么我们在标准应用程序中使用模拟 - 测试行为而不是实现方法更好。因此,通过使用Mock对象,我可以测试某些方法是否调用某些模拟对象,是否更改了某些属性等。
但是当我在寻找一些如何测试WCF的好方法时,每个人都建议使用Mocking。问题是,我觉得我应该测试方法(与服务的通信)是否真的能够到达服务并获得结果,这是令人满意的......这不是我将使用模拟对象实现的情况。 / p>
或者我错过了什么?
答案 0 :(得分:1)
单元测试的目的不是测试您的应用程序,而是确保您编写的代码正在执行预期的操作,并随后在您进行简单的编码操作时通知您。在测试基于通信的服务时,有十几个其他因素,其中最重要的是实际连接,可能会影响您的连接,但实际上并没有告诉您有关代码的任何有用信息。因此,您应该依靠运行应用程序的调试运行来测试端到端功能,并使用这些模拟单元测试来测试实际的代码功能。
你会在这里和那里想念一些东西吗?是的,但良好的单元测试的定义是这样的,当发生这种情况时,你最终必须触摸它们。