3

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

Castle 抛出以下异常:

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

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

我试图使用 MVCContrib 的 TestControllerBuilder 来初始化这个控制器,但它没有效果。

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

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

2 回答 2

7

你这样做是错的

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

于 2011-01-06T10:09:10.950 回答
1

你见过这个问题:Mock HttpContext.Current in Test Init Method吗?

于 2011-01-04T21:33:40.393 回答