我正在尝试为一个控制器编写单元测试,该控制器依赖于生活方式为“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);
答案 0 :(得分:7)
抽象依赖项,不要在测试中使用容器。
答案 1 :(得分:1)
您是否见过这个问题:Mock HttpContext.Current in Test Init Method?