gpt4 book ai didi

c# - 在 WebAPI 中模拟 HttpResponseHeaders 和 cookie

转载 作者:行者123 更新时间:2023-11-30 23:33:08 24 4
gpt4 key购买 nike

我正在尝试为我的网络 API Controller 编写一些单元测试,我需要测试是否正确检索了 cookie,因此我想设置一个模拟来返回我想要测试的 cookie。在 WebAPI 中像这样检索 Cookie:

Request.Headers.GetCookies("CookieName").FirstOrDefault()

请求对象是可模拟的,但不幸的是我无法模拟 headers 属性(它是一个 HttpRequestHeaders 对象),因为 HttpRequestHeaders 是密封的并且它的方法都不是虚拟的,并且它也没有实现接口(interface)(干得好 MS)。

有没有办法在 WebAPI 中模拟 cookie 的获取/设置?

附注我不想听到我不应该在 WebAPI 中使用 cookie,这就是正在做的事情并且改变它超出了我当前工作的范围

最佳答案

这就是我最终做的。

设置请求 cookie。

  var target = new YourController()
target.Request.Headers.Add("Cookie", "YourCookieKey=Value;");

读取响应 cookie。

 var response = target.YourControllerMethod();
var result = response.Content.ReadAsAsync<YourModel>().Result;
Assert.IsTrue(response.Headers.GetValues("Set-Cookie").ToList()[0].Contains("YourCookieKey"));

关于c# - 在 WebAPI 中模拟 HttpResponseHeaders 和 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34044638/

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