gpt4 book ai didi

c# - 单元测试 .net Web Api。设置查询字符串值

转载 作者:行者123 更新时间:2023-11-30 13:23:20 26 4
gpt4 key购买 nike

我的 ApiController HttpGet 操作的第一行是这样的

var returnOnlyDefault = (Request.GetQueryNameValuePairs()
.Any(kv => ((kv.Key.ToLower() == "defaultview") && (kv.Value.ToLower() == "true"))));

这将查找“defaultview”的查询字符串值。代码“有效”,但我无法对其进行单元测试。

在我的单元测试中,我正在做以下事情

var controller = new Controllers.ViewsController { Request = new HttpRequestMessage() };
controller.Request.Properties.Add(new KeyValuePair<string, object>("defaultview", "true"));

请求uri当然是空的。测试失败,因为它没有获取查询字符串值。

最佳答案

你应该设置请求 Uri:

controller.Request = new HttpRequestMessage(HttpMethod.Get, "http://localhost:51083/?param1=someValue&param2=anotherValue");

现在 ApiController 中的获取查询字符串参数按预期工作:

var queryStringParams = Request.GetQueryNameValuePairs().ToList();
var param1 = queryStringParams.FirstOrDefault(kv => kv.Key.Equals("param1")).Value;

param1 现在是“someValue”并且单元测试运行。

关于c# - 单元测试 .net Web Api。设置查询字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12815733/

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