具有PerWebRequest LifeStyle依赖性的单元测试控制器

时间:2011-01-04 21:26:43

标签: asp.net-mvc httpcontext mvccontrib-testhelper

我正在尝试为一个控制器编写单元测试,该控制器依赖于生活方式为“PerWebRequest”的类型。

Castle抛出以下异常:

  

System.InvalidOperationException:HttpContext.Current为null。 PerWebRequestLifestyle只能在ASP.Net中使用。

我可以以某种方式模拟HttpContext.Current属性来解决这个问题吗?

我曾尝试使用MVCContrib的TestControllerBuilder初始化此控制器,但它没有效果。

  SymptomTopicController controller = new SymptomTopicController();
        controller.WorkOrderFulfillment = workOrderFulfillment;

        TestControllerBuilder controllerBuilder = new TestControllerBuilder();
        controllerBuilder.InitializeController(controller);

2 个答案:

答案 0 :(得分:7)

You're doing it wrong

抽象依赖项,不要在测试中使用容器。

答案 1 :(得分:1)

您是否见过这个问题:Mock HttpContext.Current in Test Init Method