gpt4 book ai didi

c# - 如何在单元测试中模拟 HttpRequest 的 UserAgent 属性?

转载 作者:太空宇宙 更新时间:2023-11-03 13:08:13 25 4
gpt4 key购买 nike

我正在尝试为我的单元测试创​​建一个假的 HttpContext 并且还想设置 UserAgent 属性。

我尝试了下面的代码,但失败了,说平台不受支持。

var httpRequest = new HttpRequest(null, "http:xyz.com", null);
httpRequest.Headers["UserAgent"] = "unitTest";

var stringWriter = new StringWriter();
var httpResponce = new HttpResponse(stringWriter);
HttpContext context = new HttpContext(httpRequest, httpResponce);

有什么帮助吗?

最佳答案

正如您在引用资料中所见,UserAgentHttpWorkerRequest 中提取。更改它的唯一方法是调用 this constructor of HttpRequest使用反射来传递工作请求:

internal HttpRequest(HttpWorkerRequest wr, HttpContext context)

随着我进一步调查,它似乎从某个遥远的 IIS 类中检索属性,或者在使用 ISAPI 时使用 Server variable ALL_RAW .

我开始认为这可能会成为被 mock 的一件可怕的事情。你可能有更多的运气来覆盖 abstract class HttpWorkerRequest自己,但实现起来可能会变成一场噩梦。

关于c# - 如何在单元测试中模拟 HttpRequest 的 UserAgent 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051694/

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