
Automate test of web service communication我有一个将消息发送到外部Web服务的应用程序。我使用MSBuild和Cruisecontrol.NET构建和部署此应用程序。在CCNET构建和部署应用程序时,它还使用NUnit运行一组测试。我现在也想测试Web服务通信。 我的想法是,应在构建过程中生成一个Web服务(基于外部Web服务WSDL)并将其部署到构建服务器本地Web服务器。 Web服务应该做的就是接收消息并将其放置在文件系统上,这样我就可以使用例如普通的NUnit对其进行检查。这也将使开发更加容易,因为新开发人员只需运行构建脚本并启动并运行(不必花费时间来建立与第三方服务的连接)。 是否有任何现有的实用工具可以轻松地模拟基于WSDL的Web服务?有人使用MSBuild做过类似的事情吗? 还有其他方法可以测试这种情况吗? 我刚刚开始研究http://www.soapui.org/,看来它可以很好地用于测试Web服务。 还可以看看在Web服务中添加一个抽象层,每个服务调用将直接调用一个可测试的方法(在Web范围之外)?我只是用我正在做的一个更大的项目来做的,它的可测试性很好。 这也可能是某些东西-MockingBird。看起来很有用。 看看NMock2。它是一种开放源代码的模拟产品,允许您为支持丰富和深度交互的接口创建"虚拟"实现。 例如,如果您的WS接口被称为
在测试结束时,调用 P.S .:请勿将" NMock2"项目与" NMock RC2"(在sourceforge上也称为" nmock2")混淆。 NMock2-该项目似乎已取代NMock。 通常,测试这样的事情的一种很好的方法是使用模拟对象。 在工作中,我们使用产品TypeMock来测试Web服务通信和其他外部依赖项。它要花钱,所以出于这个原因,它可能不适合您的需求,但是我认为这是一个很棒的产品。我可以从个人经验告诉您,它与NUnit和CCNet集成得很好。 它有一个非常简单的语法,您基本上会说:"当调用此方法/属性时,我希望您返回此值。"非常适合测试诸如网络故障,文件不存在以及当然还有Web服务之类的内容。 在我的工作场所,我们使用Typemock和nUnit进行单元测试。 |