我如何对我的控制器进行单元测试,以确保温莎可以在使用PerWebRequestLifestyle时解决依赖关系

本文关键字:PerWebRequestLifestyle 关系 依赖 解决 确保 我的 控制器 单元测试 | 更新日期: 2023-09-27 17:52:36

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

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

这样做的目的是确保我没有任何温莎配置问题,我不会意识到,直到我访问该控制器上的操作。问题是我所有的对象注册都注册为PerWebRequestLifestyle,所以我不会得到我的实体框架数据上下文跨web请求共享的问题(这会导致多个操作运行时出错)。

然而,每当我运行这个单元测试时,我都会得到以下异常:

系统。InvalidOperationException: HttpContext。Current为空。PerWebRequestLifestyle只能在ASP中使用。净

我如何在不改变对象注册命令的方式的情况下测试这个场景?

我如何对我的控制器进行单元测试,以确保温莎可以在使用PerWebRequestLifestyle时解决依赖关系

我不知道你是否可以在ASP之外使用PerWebRequestLifestyle。. NET (MVC)(我不认为你可以),但你可以使用IContributeComponentModelConstruction来修改组件注册时的生活方式。

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

相关文章:
  • 没有找到相关文章