Unit testing Unity PerRequestLifetimeManager单元测试

Unit testing Unity PerRequestLifetimeManager单元测试,unit-testing,unity-container,Unit Testing,Unity Container,我有以下统一配置: public static void RegisterTypes(IUnityContainer container) { ... container.RegisterType<IRootDatabaseContext, RootEntities>(new PerRequestLifetimeManager()); ... } 当我运行此测试时,我得到一个错误: InvalidOperationEx

我有以下统一配置:

public static void RegisterTypes(IUnityContainer container)
    {
        ...
        container.RegisterType<IRootDatabaseContext, RootEntities>(new PerRequestLifetimeManager());
        ...
    }
当我运行此测试时,我得到一个错误:

InvalidOperationException-由于对象的当前状态,操作无效


如何将LifeTimeManager替换为单元测试,从PerRequestLifetimeManager替换为另一个?

我刚刚找到了解决此问题的方法:

只需要在测试中的这一行之前添加以下代码

UnityConfig.RegisterTypes(容器)

[TestMethod]
public void AssertUnityConfigAreValid()
{
    using (var container = new UnityContainer())
    {
        UnityConfig.RegisterTypes(container);
        foreach (var registration in container.Registrations)
        {
            container.Resolve(registration.RegisteredType, registration.Name);
        }
    }
}
var request = new HttpRequest("fake", "https://127.0.0.1", null);
var respons = new HttpResponse(new StringWriter());
var context = new HttpContext(request, respons);
HttpContext.Current = context;