WCF模拟的目的

时间:2015-04-16 14:51:15

标签: c# wcf unit-testing

我在尝试理解在单元测试中模拟我的WCF应用程序的目的时遇到了困难。我已经阅读了这篇文章Testing with mock objects,我相信我知道为什么我们在标准应用程序中使用模拟 - 测试行为而不是实现方法更好。因此,通过使用Mock对象,我可以测试某些方法是否调用某些模拟对象,是否更改了某些属性等。

但是当我在寻找一些如何测试WCF的好方法时,每个人都建议使用Mocking。问题是,我觉得我应该测试方法(与服务的通信)是否真的能够到达服务并获得结果,这是令人满意的......这不是我将使用模拟对象实现的情况。 / p>

问题:

  • 在我的WCF应用单元测试中使用模拟对象真的只是为了测试该方法是否试图调用服务公开的OperationContract(方法)(而不是期望实际结果)?

或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

单元测试的目的不是测试您的应用程序,而是确保您编写的代码正在执行预期的操作,并随后在您进行简单的编码操作时通知您。在测试基于通信的服务时,有十几个其他因素,其中最重要的是实际连接,可能会影响您的连接,但实际上并没有告诉您有关代码的任何有用信息。因此,您应该依靠运行应用程序的调试运行来测试端到端功能,并使用这些模拟单元测试来测试实际的代码功能。

你会在这里和那里想念一些东西吗?是的,但良好的单元测试的定义是这样的,当发生这种情况时,你最终必须触摸它们。