我一直在尝试对此主题进行一些研究,因为我认为这种情况经常发生,但是我没有发现任何相关性太高的东西。我们有一个与客户互动的第三方服务。我们有他们的WSDL,已经提供了服务参考并开发了项目,但是实际上我们没有访问他们的服务进行测试的权限。测试我们的代码的最佳方法是什么?这是我知道的选项:
Soap UI-此工具允许您从WSDL创建模拟服务。您可以指定将针对不同的方法调用返回的答复消息,但是据我所知,使用哪种答复完全是随机的。
手动创建的模拟服务-我发现我需要对测试服务进行更多控制。具体来说,我想进行输入验证并返回正确的数据。因此,我构建了自己的模拟服务,该服务扩展了使用WSDl.exe tool中的/ serverInterface从客户端的WSDL生成的服务接口。
有没有更好的方法来进行这种测试?我对选项1感到非常有限,但选项2似乎有些密集。由于工作量大,我的同事嘲笑了选项2,并提到我们应该使用Visual Studio进行测试。 Visual Studio中是否存在这样的测试工具?如果是这样,是否将其限制为与Soap UI相同的方式,我们将在其中受到重复的回复消息?
谢谢!
更新:为了澄清有关Visual Studio测试的问题:我知道VS中有一个测试套件,并且有类似Web测试的内容,但是模拟服务又如何呢?我还没有看到任何迹象表明这种测试工具的存在。
最佳答案
我们使用您的选项2运行多个模型。确实,模仿外部服务的操作行为需要花费一些工作,但它却能带来丰厚的回报。您可以完全控制测试实施,并且可以控制返回哪个问题的答案。
重要的是要很好地描述第三者提供的服务的行为。接口说明通常很少。可以返回什么错误?什么时候发生错误?什么是幸福的道路。所有人都应该知道。因此,作为创建模型的副作用,您将获得有关第三方服务功能的专家见解:-)