ASP.NET MVC HttpContext中的测试方法

时间:2011-06-22 09:32:32

标签: asp.net-mvc unit-testing

我在控制器中有这个

public ActionResult Testing()
{
    CustomerContactModel model = new CustomerContactModel();
    ...
    HttpContext.Current.Session["xxxx"] = "Data";

    return PartialView("MyPartialView", model);
}

当我从trest方法运行控制器操作时,我在HttpContext上遇到异常。我该如何解决这个问题?

谢谢,

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您可以使用moq几乎任何东西,包括HttpContext,用于测试方法:

Try this post as a starter.

我个人尝试通过将所有重要代码保存在控制器中以及更远的方法来使我的ActionResult方法不需要测试......但是如果你想测试它们,那么模拟可以非常方便。

答案 2 :(得分:0)

你必须在单元测试中模拟HttpContext。以下是使用Moq框架的方法:How do I mock the HttpContext in ASP.NET MVC using Moq?

但您也可以使用MvcContrib TestControllerBuilder轻松完成。您在此处有一些示例:http://mvccontrib.codeplex.com/wikipage?title=TestHelper&referringTitle=Documentation

对未来的建议,也将尽可能避免在控制器操作中依赖HttpContext。