Tengo una pregunta simple.Contenedor IoC, compruebe errores en tiempo de compilación
Digamos que tengo una solución .Net, con diferentes proyectos como algunas bibliotecas de clases (bll, dal, etc.) y un proyecto principal que puede ser una aplicación web o una aplicación wpf, no importa.
Ahora digamos que quiero usar un contenedor IoC (como Windsor, Ninject, Unity, etc.) para resolver cosas como validadores, repositorios, implementaciones de interfaz común y demás.
Lo puse todo junto. Compila y funciona bien. Luego, algún día, agrego un nuevo servicio, y en mi código solo trato de resolverlo a través del contenedor IoC. La cosa es que olvidé registrarlo en la configuración de IoC.
Todo se compila y la aplicación se implementa y se ejecuta. Todo funciona bien, excepto cuando el código de una página solicita ese nuevo servicio al contenedor y el contenedor responde "hey, no sé nada sobre este servicio".
Recibirá el error registrado y la página de error fácil de usar. Revisarás el error, verás el problema y lo arreglarás. Bastante estándar.
Digamos que queremos mejorar el proceso y, de alguna manera, saber en tiempo de compilación si cada servicio que esperamos que maneje el contenedor IoC está registrado correctamente en el código.
¿Cómo se pudo lograr esto? Una cosa es que las Pruebas unitarias están descartadas de posibles respuestas, estoy buscando otra manera, si es que existe.
¿Pensamientos?
EDITAR - Después de algunas respuestas y comentarios, parece que las Pruebas unitarias son de hecho la única forma de lograr esta característica.
Lo que me gustaría saber es que si las pruebas unitarias no fueran posibles, por lo que IoC no podría ser probado en tiempo compilado, esto le impediría usar un contenedor IoC y optaría por crear instancias directas todo tu código? Quiero decir, ¿considerarías demasiado inseguro y arriesgado usar el IoC y el enlace tardío, y ver que sus ventajas están siendo superadas por este "defecto"?
Como @ Chriseyre2000 señaló en su respuesta, Unit Testing es una forma muy efectiva de verificar la configuración de IoC, por lo que puede volver a evaluar su decisión de no tener pruebas. La alternativa a esto es probar manualmente cada página en el sitio web. – GolfWolf
No es una decisión, quiero saber si hay otra manera consistente y confiable de lograr esto aparte de las pruebas unitarias, que es, hasta ahora, la única forma en que soy consciente. –
¿Por qué no podría usar una prueba de unidad de un solo método? – Chriseyre2000