2009-07-30 66 views
15

我有一堆註冊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(); 
     } 
    } 

回答

5

Autofac不提供任何表明此 - 因爲Autofac響應ResolveInstance創建的組件,你將要面臨的構造副作用等

集成測試是最好的方法解決這個問題。

+0

你可以試試https://github.com/TestStack/TestStack.ConventionTests/releases/tag/2.1.0 – 2017-03-13 22:48:08