开发者

How can I unit test my controller to make sure Windsor can resolve dependencies when using PerWebRequestLifestyle

I have the following unit test in my application:

    [TestMethod]
    public void Windsor_Can_Resolve_HomeController_Dependencies()
    {
        // Setup
        WindsorContainer container = new WindsorContainer();
        container.Install(FromAssembly.Containing<HomeController>());

        // Act
        container.Kernel.Resolve(typeof(HomeController));
    }

The point of this is to make sure I don't have any windsor configuration issues that I won't realize until I access an action on that controller. The problem is that all my object registrations are registered as PerWebRequestLifestyle so I don't get issues with my Entity Framwork Data Context be开发者_开发知识库ing shared across web requests (which causes errors when multiple actions are run).

However, whenever I run this unit test I get the following exception:

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

How can I go about testing this scenario without changing the lifestyle of my object registration commands?


I don't know if you can use the PerWebRequestLifestyle outside of ASP.NET (MVC) (I don't think you can), but you can use an IContributeComponentModelConstruction to modify the lifestyle of the components when they are registered.

This would enable you to (integration) test the container without modifying any of your Installers.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜