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;