Autofac测试所有注册类型都可以解决
问题描述:
我有一堆注册Autofac的类型,一些依赖关系比较深。是否有内置的方式来测试我可以解决所有注册类型?我想在应用程序启动时快速失败,而不是几分钟后部分进入。Autofac测试所有注册类型都可以解决
这就是我目前正在做的事情,它似乎工作,但我仍然怀疑是否没有更好的方法。
public void VerifyAllRegistrations()
{
foreach (IComponentRegistration registration in _container.ComponentRegistrations)
{
bool isNewInstance;
registration.ResolveInstance(_container, new Parameter[0], new Disposer(), out isNewInstance);
}
}
private class Disposer : IDisposer
{
public void Dispose()
{
// no-op
}
public void AddInstanceForDisposal(IDisposable instance)
{
instance.Dispose();
}
}
答
Autofac不提供任何表明此 - 因为Autofac响应ResolveInstance创建的组件,你将要面临的构造副作用等
集成测试是最好的方法解决这个问题。
你可以试试https://github.com/TestStack/TestStack.ConventionTests/releases/tag/2.1.0 – 2017-03-13 22:48:08