Dav*_*sen 5 wcf integration-testing wsdl nunit
我希望编写一些集成测试来比较 WCF 服务生成的 WSDL 与以前(和发布的)版本。这是为了确保服务合同与发布时间没有区别。
我希望我的测试是自包含的,而不依赖于任何外部资源,例如在 IIS 上托管。
我想我可以在测试中重新创建我的 IIS 托管环境,例如......
using (ServiceHost host = new ServiceHost(typeof(NSTest.HelloNS), new Uri("http://localhost:8000/Omega")))
{
host.AddServiceEndpoint(typeof(NSTest.IMy_NS), new BasicHttpBinding(), "Primary");
ServiceMetadataBehavior behavior = new ServiceMetadataBehavior();
behavior.HttpGetEnabled = true;
host.Description.Behaviors.Add(behavior);
host.AddServiceEndpoint(typeof(IMetadataExchange), MetadataExchangeBindings.CreateMexHttpBinding(), "mex");
host.Open();
}
Run Code Online (Sandbox Code Playgroud)
有没有其他人有更好的想法?
编辑: 显然这段代码只是为服务创建一个主机,我仍然缺少获取 WSDL 定义的客户端代码。
您需要注意的一件事是比较整个 WSDL。与经典 Web 服务 (asmx) WSDL 不同,WCF 分解了 WSDL。这意味着信息的核心位于 ?WSDL 页面上,但是,还会有多个 XSD (.svc?XSD=XSD0, 1, 2 ...) 以及可能的多个 WSDL 页面(?WSDL 和 ?WSDL=例如 WSDL0)。
实现此目的的一种方法是生成一个 Web 请求以从根 wsdl 获取数据。然后,您可以在 WSDL 中搜索 (yourServicename).svc?WSDL=WSLD0 和 (yourServicename)?XSD=XSD0 等内容,为每个 WSDL 和 XSD 生成额外的 Web 请求。
| 归档时间: |
|
| 查看次数: |
4145 次 |
| 最近记录: |