如何对 WCF UriTemplates 进行单元测试?

Posted

技术标签:

【中文标题】如何对 WCF UriTemplates 进行单元测试?【英文标题】:How to unit-test WCF UriTemplates? 【发布时间】:2011-05-31 15:38:16 【问题描述】:

如何编写单元测试来测试 UriTemplates(例如我的 WCF 服务中的[WebGet(Uritemlpate="clientId/returns")]

例如,在 Global.asax 我有:

private void RegisterRoutes()

     RouteTable.Routes.Add(new ServiceRoute("clients", 
                new WebServiceHostFactory(), typeof(ClientService)));

在 ClientService 我有一个[WebGet(Uritemlpate="uri_1")]:

    [ServiceContract]
    public class ClientService 
    
        [WebGet(UriTemplate = "uri_1")]
        public string GetCollection()
        
            return "Method 1";
        

        [WebGet(UriTemplate = "uri_2")]
        public string GetCollections()
        
            return "Method 2";
        
    

我想要一个测试,断言 url clients/uri_1 恰好命中 ClientService 的 GetCollection 方法。

【问题讨论】:

【参考方案1】:

您可以 Unit Test 方法 GetCollectionGetCollections 只需调用它们并检查返回不为空。

你真正想做的是Integration Test。这需要 Web 服务器的外部依赖。在这里查看类型之间的区别 What is Unit test, Integration Test, Smoke test, Regression Test?

两者兼得是值得的。当我们自动提交代码时,我们运行Unit Tests,它们会自动部署到集成中。域,然后运行 ​​Integration Tests

【讨论】:

以上是关于如何对 WCF UriTemplates 进行单元测试?的主要内容,如果未能解决你的问题,请参考以下文章

如何对 WCF 服务进行单元测试?

如何对我的 WCF 客户端类进行单元测试?

WCF 单元测试

如何从 SOAP 响应 XML 创建 WCF 消息对象

如何对 Windows 服务中托管的 wcf 服务进行负载/压力测试?

将数据注入 WCF 服务