【问题标题】:How to test an ajax submition in ASP.NET MVC?如何在 ASP.NET MVC 中测试 ajax 提交?
【发布时间】:2009-06-18 05:27:33
【问题描述】:

具体来说,如何传递静态方法Request.IsAjaxRequest()?

当我尝试测试以下代码时出现异常“System.ArgumentNullException”:

if (Request.IsAjaxRequest())
{
  return Json(data);
}
return View(data2);

我正在使用起订量。感谢您的帮助。

【问题讨论】:

    标签: asp.net-mvc unit-testing


    【解决方案1】:

    您需要模拟 Request 和 Request.Headers 才能使用 Request.IsAjaxRequest():

    var request = new Mock<HttpRequestBase>();
    request.SetupGet(x => x.Headers).Returns(new System.Net.WebHeaderCollection {
        {"X-Requested-With", "XMLHttpRequest"}
    });
    
    var context = new Mock<HttpContextBase>();
    context.SetupGet(x => x.Request).Returns(request.Object);
    
    var controller = new YourController();
    controller.ControllerContext = new ControllerContext(context.Object, new RouteData(), controller);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 2010-10-20
      • 1970-01-01
      • 1970-01-01
      • 2017-04-10
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多