我应该如何为WCF REST服务编写集成测试?
我想为POST请求编写一个测试用例,它期望的消息契约是一种复杂的类型。
我的合同
[OperationContract]
[WebInvoke(UriTemplate = "Receiver/Add", Method = "POST", RequestFormat = WebMessageFormat.Json)]
AccountCreateResponse AddReceiver(AccountCreateRequest request);
我的测试用例是这样的
string jsonRequestData = "{\"ReceiverAccountCreateRequest\":{\"FriendlyName\":\"aBC\",\"AccountNumber\":\"11111111111111111\",\"AccountType\":\"1\",\"CategoryName\":\"ACH\",\"IsTemporary\":\"false\",\"ExtendedProperties\":{\"SerializedInstance\":\"Corporate Type~Payroll~False|Batch Description~Dir Dep~False|Company Name~4not4~False|Identification Number~123456789~False|Total Amount~232~False|Direction~C~False|chach Format~PPD~False\"},\"Imported\":\"0\"}}";
byte[] data = Encoding.UTF8.GetBytes(xmlRequestData);
var request = (HttpWebRequest)WebRequest.Create("http://localhost/abcService.svc/Receiver/Add");
request.Method = "POST";
request.ContentType = "application/json";
Stream dataStream = request.GetRequestStream();
dataStream.Write(data, 0, data.Length);
dataStream.Close();
var response = request.GetResponse();
错误
415请求内容不匹配。
答案 0 :(得分:0)
您可以从可用的测试模板创建Microsoft Unit Test项目,并添加WCF服务的Web Reference。
在这里,最好使用服务通道进行测试,但仍然可以使用传统的服务调用方法。这是我们在多个服务器上测试各种服务所做的工作,因为我们的对象模型太复杂了。
点击此链接,了解VS2013中的单元测试模板