我需要编写一个单元测试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";
....
}
答案 0 :(得分:0)
您所写的不是单元测试,而是集成测试。 为了编写单元测试,您需要能够将您的类与其他所有内容隔离开来,并仅测试其功能。 这意味着你不应该使用:
return GetCustomerInfo.Instance.returnCustomerProfile();
GetCustomerInfo.Instance是(我假设)通过静态类GetCustomerInfo访问的单例,因此难以模拟。你应该将GetCustomerInfo.Instance“注入”你的类,以便能够模拟它进行单元测试。
我鼓励您将依赖注入库合并到项目中,并将模拟库合并到单元测试中。
除非您需要使用WCF REST服务,否则我还鼓励您使用MVC Web API满足您的REST需求。它具有为REST构建的优点,并且不会受到WCF的所有内容和接收方法的影响。