我如何对我的控制器进行单元测试,以确保温莎可以在使用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中使用。净
我如何在不改变对象注册命令的方式的情况下测试这个场景?
我不知道你是否可以在ASP之外使用PerWebRequestLifestyle。. NET (MVC)(我不认为你可以),但你可以使用IContributeComponentModelConstruction来修改组件注册时的生活方式。
这将使您能够(集成)测试容器,而无需修改任何安装程序。