gpt4 book ai didi

c# - 调用 IsAjaxRequest() 的单元测试 Controller 操作

转载 作者:太空狗 更新时间:2023-10-29 17:41:09 25 4
gpt4 key购买 nike

我的某些 Controller 操作需要使用不同的 ViewResults 进行响应,具体取决于它们是否被 AJAX 请求调用。目前,我正在使用 IsAjaxRequest() 方法来检查这一点。在单元测试期间调用此方法时,它会抛出 ArgumentNullException,因为缺少 HTTP 上下文。

有没有办法模拟/伪造这个调用?或者这是我应该以其他方式检查 AJAX 请求的标志吗?

最佳答案

如果您为 HTTP 上下文提供一个测试替身会有帮助吗?

可以这样做:

var httpCtxStub = new Mock<HttpContextBase>();

var controllerCtx = new ControllerContext();
controllerCtx.HttpContext = httpCtxStub.Object;

sut.ControllerContext = controllerCtx;

其中 sut 代表被测系统 (SUT),即您要测试的 Controller 。

此示例使用 Moq。

关于c# - 调用 IsAjaxRequest() 的单元测试 Controller 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1889907/

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