【问题标题】:Substituting a WSDL Interface替换 WSDL 接口
【发布时间】:2015-08-24 10:15:14
【问题描述】:

我接到了一个需要做一些工作的项目,而创建它的原始团队已经离开了公司。这已经“上架”了 4 年,除了我们的客户之外,每个人都忘记了它。他们希望它现在就交付,但它不起作用。

该系统是一个相对简单的 ASP Web Forms 应用程序,用于通过 2 个 WSDL 接口向另一个服务提交数据,将该请求记录在 SQL 数据库中,并通过 OPC 将响应提交给另一个服务。

我可以设置所有这些接口进行测试,除了 WSDL。我这里只有软件可以运行。有什么方法可以轻松地创建一个服务来模拟最终的服务,以便我可以测试我的软件。我只有 2 个 WSDL 文件可以继续。这些不是复杂的服务。我总共只使用了 4 种方法。

我被引导相信这个系统的原始创建者做了类似的事情,但我找不到他使用了什么或任何关于它的文档。我预计它是在他的笔记本电脑上运行的,并且在他离开公司时丢失了。

【问题讨论】:

  • 您可以只通过 WSDL 生成 Web 服务和功能。关注stackoverflow.com/questions/1221121/…。对于函数中的逻辑,可以使用反编译器来获取里面的代码并更新生成代码。
  • dotPeek可以帮你反编译web服务的exe/dll。

标签: c# asp.net web-services wsdl


【解决方案1】:

WCF 服务客户端应该被包装并通过一个接口暴露给您的软件。这样,您可以模拟接口并测试您的软件如何响应来自模拟服务客户端的各种输入/输出。您可以控制返回内容的所有方面,包括可能像真正的 WCF 服务客户端那样抛出异常。

这基本上就是SOLID中“I”存在的原因——因为基于接口的实现替换很简单。

【讨论】:

  • 是的,这有助于我测试大部分系统。但不是服务客户端本身。
  • 服务客户端是 Microsoft 在您向项目中添加必要的服务引用时自动生成的代码 - 如果他们的代码错误,您无能为力,老实说,除了自己编写整个客户端之外,但我不会不推荐。
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2019-10-29
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多