【问题标题】:Is it possible to unit test service contracts without having to run the actual service?是否可以在不必运行实际服务的情况下对服务合同进行单元测试?
【发布时间】:2012-12-04 06:42:06
【问题描述】:
我正在开发一个使用 WCF 服务(实际上是服务客户端解决方案)的应用程序。
出现的问题是,当我们进行一些重构时,结果发现某些服务合同无效。在服务和应用程序运行之前,这不会显示。
现在,我想编写测试用例来简单地测试服务合同,这样当它们不匹配时,测试用例就会失败。这是否可以在不必运行实际服务的情况下完成?
也就是说,我可以在测试用例中如何模拟服务部分并同时调用客户端调用吗?
【问题讨论】:
标签:
wcf
unit-testing
testing
service
servicecontract
【解决方案1】:
我会说这是不可能的,因为如果你通过网络执行函数,可能会发生很多陷阱。
例如超时、连接失败、授权问题等等。
为方法本身的代码编写离线单元测试应该是可能的,但恕我直言,这只是工作的一小部分。
【解决方案2】:
我只是在这里说出我的想法。 .Net Reflection 会解决您的问题吗?我的意思是,检查包含您要验证的服务合同的二进制文件。