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

时间:2010-12-28 16:14:06

标签: asp.net wcf unit-testing url

如何编写单元测试来测试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";
        }
    }

我想要一个测试,断言网址clients/uri_1命中客户端的GetCollection方法。

1 个答案:

答案 0 :(得分:0)

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

您实际想要做的是Integration Test。这需要Web服务器的外部依赖性。在这里查看类型之间的差异 What is Unit test, Integration Test, Smoke test, Regression Test?

同时拥有两者是值得的。我们在自动提交代码时运行Unit Tests,它们会自动部署到集成中。域,Integration Tests然后针对此运行。