2009-07-30 9 views
15

J'ai un tas de types enregistrés avec Autofac et certaines des dépendances sont plutôt profondes. Y at-il un moyen intégré de tester que je peux résoudre tous les types enregistrés? Je veux échouer rapidement au démarrage de l'application, et pas quelques minutes plus tard à mi-chemin.Test Autofac tous les types enregistrés peuvent être résolus

C'est ce que je fais actuellement, et cela semble fonctionner, mais je me demande toujours s'il n'y a pas de meilleure façon.

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(); 
     } 
    } 

Répondre

5

Autofac ne propose rien à cet effet - car Autofac crée des composants en réponse à ResolveInstance, vous allez être confrontés à des effets secondaires constructeur etc.

Les tests d'intégration est la meilleure façon pour remédier à ce.

+0

Vous pouvez essayer https://github.com/TestStack/TestStack.ConventionTests/releases/tag/2.1.0 –

Questions connexes