2009-07-30 15 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を試すことができます。 –

関連する問題