eKe*_*ek0 3 asp.net-mvc unit-testing
具体来说,我如何传递静态方法Request.IsAjaxRequest()?
当我尝试测试以下代码时,我得到异常'System.ArgumentNullException':
if (Request.IsAjaxRequest())
{
return Json(data);
}
return View(data2);
Run Code Online (Sandbox Code Playgroud)
我正在使用Moq.谢谢你的帮助.
您需要模拟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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |