问候,
我想编写一个单元测试来确保我们的 Web 服务没有更改上次已知发布版本的 WSDL。原因是对 WSDL 中对象的任何更改都会导致使用 Apache Axis 的客户端失败。即使您所做的只是添加一个不需要的属性。因此,如果发生更改,则需要提醒开发人员,因为产品管理需要与客户沟通有关更改的信息,以便他们可以在新的 WSDL 发布时准备好重新编译其存根。
所以我希望有这样的东西:
[Test]
public void TheWSDLHasNotChanged(){
XmlDocument currentWSDL = SomeMysteryServiceIDontKnowAbout.GetWSDLForWebServiceClass(typeof(UserService));
XmlDocument existingWSDL = new XmlDocument().Load("ExistingWsdl.wsdl");
Assert.That(currentWSDL, Is.Equal.To(existingWSDL));
}
出于明显的原因,我不想向网络服务器发出请求(在运行单元测试时,该服务器可能正在运行,也可能没有运行)。
要从程序集生成 WSDL:
对于 WCF,请使用 SvcUtil.exe。看到这个MSDN 操作方法 http://msdn.microsoft.com/en-us/library/aa702581.aspx.
对于 ASP.NET,请使用 ServiceDescriptionReflector。请参阅本指南:http://craigandera.blogspot.se/2004/10/generating-wsdl-without-aspnet_18.html http://craigandera.blogspot.se/2004/10/generating-wsdl-without-aspnet_18.html
抱歉,我在第一个答案中误解了您的代码片段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)