C# 在使用PerWebRequestLifestyle时,如何对控制器进行单元测试以确保Windsor能够解决依赖关系

C# 在使用PerWebRequestLifestyle时,如何对控制器进行单元测试以确保Windsor能够解决依赖关系,c#,unit-testing,castle-windsor,C#,Unit Testing,Castle Windsor,我的应用程序中有以下单元测试: [TestMethod] public void Windsor_Can_Resolve_HomeController_Dependencies() { // Setup WindsorContainer container = new WindsorContainer(); container.Install(FromAssembly.Containing<HomeController

我的应用程序中有以下单元测试:

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

        // Act
        container.Kernel.Resolve(typeof(HomeController));
    }
[TestMethod]
公共无效Windsor\u可以\u解决\u HomeController\u依赖项()
{
//设置
WindsorContainer容器=新WindsorContainer();
container.Install(fromsassembly.Containing());
//表演
container.Kernel.Resolve(typeof(HomeController));
}
这一点是为了确保我没有任何windsor配置问题,在我访问该控制器上的操作之前,我不会意识到这些问题。问题是,我的所有对象注册都注册为
perwebrequestlife
,因此我不会在web请求之间共享实体框架数据上下文时遇到问题(在运行多个操作时会导致错误)

但是,无论何时运行此单元测试,都会出现以下异常:

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


如何在不改变对象注册命令的生活方式的情况下测试此场景?

我不知道您是否可以在ASP.NET(MVC)之外使用PerWebRequestLifestyle(我认为您不能),但您可以使用


这将使您能够(集成)测试容器,而无需修改任何安装程序。

这对我不起作用,但这个答案确实起作用