【发布时间】:2012-06-11 19:14:04
【问题描述】:
我正在尝试测试返回部分视图的ActionResult。此操作检查用户使用的是 IE7 还是 IE8,如果用户使用的是 IE7 或 8,将返回不同的部分。这是因为我们使用的 java-script 不能完全使用 7 或 8,所以我们将区别对待。
我省略了模型创建,因为我只想专注于Request.Browser.Type。
public ActionResult ActionName(string listing)
{
if (model.Count > 1 && Request.Browser.Type != "IE8" && Request.Browser.Type != "IE7")
{
return PartialView("~/Areas/Features/Views/Video/MultiVideo.cshtml", model);
}
return PartialView("~/Areas/Features/Views/Video/SingleVideo.cshtml", model.FirstOrDefault());
}
最后我想知道两件事
- 如果有的话,你怎么能模拟
Request.Browser.Type? - 在您的控制器中执行此操作是否是一种好习惯?如果不是什么解决方案会更好?
我尝试过的:
var browser = new Mock<HttpContext>(MockBehavior.Strict);
browser.Setup(x => x.Request.Browser).Returns("IE9");
【问题讨论】:
标签: asp.net-mvc-3 unit-testing mocking httpcontext