单元测试WCF服务

时间:2014-01-20 17:01:41

标签: c# wcf unit-testing testing mocking

我正在设计一个企业级Web应用程序,它将具有数据层+ SQL数据库,与数据层通信的WCF REST Web服务层,然后是将与WCF REST Web服务进行通信的MVC网站。我希望在设计的每个级别都进行自动单元测试。

我已经创建了一个数据层单元测试项目,可以测试EF模型,存储库,操作等,并且有大约15个测试我可以单击按钮并运行到目前为止,测试数据层提供的所有功能。

我希望在WCF服务层拥有相同的功能,但我无法弄清楚如何让自动测试项目针对WCF服务运行。我看过有关使用WCF测试客户端在后台加载服务的文章,并能够为每个服务方法输入参数并查看结果,但我不想手动过程,我希望它是自动化的,模拟数据层并单独测试服务调用。理想情况下,我希望测试它的RESTful方面,因此能够模拟GET / POST / PUT / DELETE等,并使用错误的方法调用某些方法,并确认它按预期失败等等。

有一个很好的解决方案可以自动执行此操作,还是我接近这个错误?

3 个答案:

答案 0 :(得分:2)

您确定可以创建可以自动运行以测试WCF服务的测试。

请参阅此处的讨论:WCF Unit Test

但是,在测试策略/测试用例设计中需要提出的一个问题是,REST端点测试需要多少进行单元测试以及需要多少才能成为系统/集成测试的一部分。因为wcf端点(包括REST)将允许您将系统视为黑盒子并进行系统测试而不必对内部类型有任何了解。

答案 1 :(得分:1)

我写了一篇关于如何做到这一点的文章。您必须将业务逻辑抽象为调用实际服务或模拟服务的服务。 http://gaui.is/how-to-mock-and-test-wcf-services-using-moq/

答案 2 :(得分:-1)

您可以将服务的地址更改为localhost。 通过这种方式,您可以启动服务并进行测试而无需模拟