如何写一个单元测试WCF Rest服务

时间:2015-02-05 23:19:31

标签: c# web-services wcf rest service

我需要编写一个单元测试WCF Rest服务。 这是方法之一:

接口:

    [OperationContract]
    [WebInvoke(Method = "GET",

                                ResponseFormat = WebMessageFormat.Json,
                                BodyStyle = WebMessageBodyStyle.Bare,

                               UriTemplate = "CustomerProfile")]
    Model.Customer CustomerProfile();

实现:

 public  Model.Customer CustomerProfile()
    {
        return GetCustomerInfo.Instance.returnCustomerProfile();
    }

returnCustomerProfile Method将调用数据库并返回Customer Profile。

单元测试项目中的

我添加了服务URL。我不知道如何继续。如果你有任何网站或样本会有很多帮助。

     [TestMethod]
    public void TestUpdatePasswordWeb()
    {
     string strServiceUrl =   "http://localhost:64440/CustomerRestService.svc/UpdatePassword";

 ....

  }

1 个答案:

答案 0 :(得分:0)

您所写的不是单元测试,而是集成测试。 为了编写单元测试,您需要能够将您的类与其他所有内容隔离开来,并仅测试其功能。 这意味着你不应该使用:

return GetCustomerInfo.Instance.returnCustomerProfile();

GetCustomerInfo.Instance是(我假设)通过静态类GetCustomerInfo访问的单例,因此难以模拟。你应该将GetCustomerInfo.Instance“注入”你的类,以便能够模拟它进行单元测试。

我鼓励您将依赖注入库合并到项目中,并将模拟库合并到单元测试中。

除非您需要使用WCF REST服务,否则我还鼓励您使用MVC Web API满足您的REST需求。它具有为REST构建的优点,并且不会受到WCF的所有内容和接收方法的影响。