gpt4 book ai didi

asp.net - 关于 MvcContrib TestHelpers 的新手问题

转载 作者:行者123 更新时间:2023-12-04 22:05:39 25 4
gpt4 key购买 nike

我刚刚开始使用 MvcContrib 中的 TestHelpers。我想尝试在我的 Controller 上测试一个操作方法,该方法本身会测试 IsAjaxRequest() 是否为真。

我使用了 TestHelper 示例中显示的相同代码来设置 TestControllerBuilder

_controller = new StarsController();    
_builder = new TestControllerBuilder();
_builder.InitializeController(_controller);

所以 _controller 里面有所有伪造/模拟的 HttpContext,这真的很棒。但是我现在该怎么做才能强制内部伪造的 Request 对象上的 IsAjaxRequest() 返回 true?

最佳答案

这是我使用的代码,页面顶部我的问题中的代码使用 MvcContrib testhelpers 来创建一个很好的伪造 Controller (_controller),它内部有 HttpRequest、HttpResponse 等的伪造版本。然后根据 Patrick 的建议我创建了包含 X-Requested-With 条目的新 header 集合。然后告诉 _controller.HttpContext.Request.headers 在它试图查看 header 时返回我的 header 集合(即调用 IsAjaxRequest() 时发生的情况)。

    var headers = new NameValueCollection();
headers.Add("X-Requested-With", "XMLHttpRequest");

_controller.HttpContext.Request.Stub(r => r.Headers).Return(headers);

像款待一样工作。

关于asp.net - 关于 MvcContrib TestHelpers 的新手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929058/

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