سؤال

I am trying to write a unit test for a controller that has a dependency on a type whose lifestyle is "PerWebRequest".

Castle throws the following exception:

System.InvalidOperationException: HttpContext.Current is null. PerWebRequestLifestyle can only be used in ASP.Net.

Can I mock the HttpContext.Current property somehow to get around this?

I have tried to use MVCContrib's TestControllerBuilder to initialize this controller but it has no effect.

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

        TestControllerBuilder controllerBuilder = new TestControllerBuilder();
        controllerBuilder.InitializeController(controller);
هل كانت مفيدة؟

المحلول

Have you seen this question: Mock HttpContext.Current in Test Init Method ?

نصائح أخرى

You're doing it wrong

Abstract the dependency and don't use container in your tests.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top