gpt4 book ai didi

json - 如何测试 WCF JSON 服务 - 单元测试

转载 作者:行者123 更新时间:2023-12-04 05:49:11 24 4
gpt4 key购买 nike

如何测试 WCF JSON 服务。我想为此服务创建类似单元测试的东西。有这样的教程吗?我最感兴趣的是自己编写 JSON 对象
{somedata:abc,foo:boo}

最佳答案

这是一个可以帮助您入门的链接。

http://www.entechsolutions.com/wcf-web-service-for-soap-json-and-xml-with-unit-tests

"-创建一个匹配 JSON 数据结构的动态类
- 将其序列化为 JSON
- 将 json 发送到 Web 服务
- 消除对动态对象的响应
- 确保响应具有我预期的值(value)”

邮政

[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"]);
}

得到
[Test]
public void Add_WhenMethodGet_And_ValidApiKey_ReturnsSum()
{
var url = string.Format("{0}/json/add?value1={1}&amp;value2={2}&amp;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"]);
}

关于json - 如何测试 WCF JSON 服务 - 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10284413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com