2009-07-30 15 views
15

Tengo un montón de tipos registrados con Autofac y algunas de las dependencias son bastante profundas. ¿Existe una forma integrada de probar que puedo resolver todos los tipos registrados? Quiero fallar rápidamente en el inicio de la aplicación, y no varios minutos más tarde en parte.Prueba de Autoacc todos los tipos registrados pueden resolverse

Esto es lo que estoy haciendo actualmente, y parece funcionar, pero todavía me pregunto si no hay una mejor manera.

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

Respuesta

5

Autofac no ofrece nada en ese sentido - porque Autofac crea componentes en respuesta a ResolveInstance, que va a ser enfrentado con el constructor efectos secundarios etc.

Las pruebas de integración es la mejor manera de para abordar esto.

+0

Puedes probar https://github.com/TestStack/TestStack.ConventionTests/releases/tag/2.1.0 –

Cuestiones relacionadas