2
如何测试WCF JSON服务。我想为这个服务创建类似单元测试的东西。有没有这样的教程?我会最感兴趣的是自己编写JSON对象,如 {somedata:abc,foo:boo}如何测试WCF JSON服务 - 单元测试
如何测试WCF JSON服务。我想为这个服务创建类似单元测试的东西。有没有这样的教程?我会最感兴趣的是自己编写JSON对象,如 {somedata:abc,foo:boo}如何测试WCF JSON服务 - 单元测试
这里是一个可能让你开始的链接。
http://www.entechsolutions.com/wcf-web-service-for-soap-json-and-xml-with-unit-tests
“-create是JSON数据结构 与之匹配-Serialize以JSON - 发送JSON到Web服务 -Deserilize响应动态对象动态类 - 确保该响应具有价值,我预计”
POST
[Test]
public void Add_WhenMethodPost_And_ValidApiKey_ReturnsSum()
{
var addRequest = new
{
Value1 = 5,
Value2 = 11,
ApiKey = Const.ValidApiKey
};
var url = string.Format("{0}/json/add", Const.WebServiceUrl);
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json; charset=utf-8";
var jsSerializer = new JavaScriptSerializer();
var jsonAddRequest = jsSerializer.Serialize(addRequest);
var writer = new StreamWriter(request.GetRequestStream());
writer.Write(jsonAddRequest);
writer.Close();
var httpWebResponse = (HttpWebResponse)request.GetResponse();
string jsonString;
using (var sr = new StreamReader(httpWebResponse.GetResponseStream()))
{
jsonString = sr.ReadToEnd();
}
var jsonAddResponse = jsSerializer.Deserialize<dynamic>(jsonString);
Assert.AreEqual(16, jsonAddResponse["Sum"]);
}
GET
[Test]
public void Add_WhenMethodGet_And_ValidApiKey_ReturnsSum()
{
var url = string.Format("{0}/json/add?value1={1}&value2={2}&apiKey={3}", Const.WebServiceUrl, 5, 11,
Const.ValidApiKey);
var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Method = WebRequestMethods.Http.Get;
httpWebRequest.Accept = "application/json";
string jsonString;
var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var sr = new StreamReader(httpWebResponse.GetResponseStream()))
{
jsonString = sr.ReadToEnd();
}
var jsSerializer = new JavaScriptSerializer();
var jsonAddResponse = jsSerializer.Deserialize<dynamic>(jsonString);
Assert.AreEqual(16, jsonAddResponse["Sum"]);
}
工作很好。谢谢 – Ryan 2012-04-25 18:20:36