WCF 模拟的目的
Purpose of WCF mocking
我在尝试理解在单元测试中模拟我的 WCF 应用程序的目的时遇到困难。我已经阅读了这篇文章 Testing with mock objects,我相信我明白了为什么我们在标准应用程序中使用模拟 - 测试行为而不是方法的实现更好。所以通过使用模拟对象,我可以测试某个方法是否调用了某个模拟对象,它是否改变了一些属性等。
但是当我在寻找一些测试 WCF 的好方法时,每个人都建议也使用 Mocking。问题是,我觉得我应该测试方法(与服务通信)是否真的能够到达服务并获得结果,这是令人满意的......这不是我使用模拟对象实现的情况。
问题:
- 在我的 WCF 应用程序单元测试中使用模拟对象真的只是为了测试该方法是否尝试调用由服务公开的 OperationContract(方法)(而不期望真正的结果)?
还是我遗漏了什么?
单元测试的目的不是测试您的应用程序,而是确保您编写的代码正在执行预期的操作,并随后在您犯了一个简单的编码错误时让您知道。在测试基于通信的服务时,还有许多其他因素(其中最重要的是实际连接)可能会影响您的连接,但实际上不会告诉您有关您的代码的任何有用信息。因此,您应该依靠 运行 应用程序的调试运行来测试端到端功能,并使用这些模拟进行单元测试来测试实际代码功能。
你会在这里或那里错过什么吗?是的,但是好的单元测试的定义是,当发生这种情况时,您最终将不得不修改它们。
我在尝试理解在单元测试中模拟我的 WCF 应用程序的目的时遇到困难。我已经阅读了这篇文章 Testing with mock objects,我相信我明白了为什么我们在标准应用程序中使用模拟 - 测试行为而不是方法的实现更好。所以通过使用模拟对象,我可以测试某个方法是否调用了某个模拟对象,它是否改变了一些属性等。
但是当我在寻找一些测试 WCF 的好方法时,每个人都建议也使用 Mocking。问题是,我觉得我应该测试方法(与服务通信)是否真的能够到达服务并获得结果,这是令人满意的......这不是我使用模拟对象实现的情况。
问题:
- 在我的 WCF 应用程序单元测试中使用模拟对象真的只是为了测试该方法是否尝试调用由服务公开的 OperationContract(方法)(而不期望真正的结果)?
还是我遗漏了什么?
单元测试的目的不是测试您的应用程序,而是确保您编写的代码正在执行预期的操作,并随后在您犯了一个简单的编码错误时让您知道。在测试基于通信的服务时,还有许多其他因素(其中最重要的是实际连接)可能会影响您的连接,但实际上不会告诉您有关您的代码的任何有用信息。因此,您应该依靠 运行 应用程序的调试运行来测试端到端功能,并使用这些模拟进行单元测试来测试实际代码功能。
你会在这里或那里错过什么吗?是的,但是好的单元测试的定义是,当发生这种情况时,您最终将不得不修改它们。