WCF REST服务的测试用例

时间:2015-06-10 05:58:05

标签: c# wcf rest testing integration-testing

我应该如何为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请求内容不匹配。

1 个答案:

答案 0 :(得分:0)

您可以从可用的测试模板创建Microsoft Unit Test项目,并添加WCF服务的Web Reference。

在这里,最好使用服务通道进行测试,但仍然可以使用传统的服务调用方法。这是我们在多个服务器上测试各种服务所做的工作,因为我们的对象模型太复杂了。

点击此链接,了解VS2013中的单元测试模板

How to: Create a Unit Test Project