Tengo un código de inicialización para usar mi API. La inicialización puede fallar y me gustaría probarla en una prueba NUnit.Pruebas que dependen de la funcionalidad de uso común con NUnit
Después de la inicialización, se puede usar la API. También estoy probando la API, pero todos mis métodos de prueba usarán el mismo código de inicialización común.
Lo que idealmente me gustaría es si este comportamiento:
- La prueba se ejecuta la inicialización.
- Las otras pruebas se ejecutan si [1] tuvo éxito.
En todos los casos donde [1] fallará, también lo harán todas las demás pruebas. Pero la información valiosa es que [1] falla. Ahí es donde probablemente encuentre el problema. Sería bueno si las otras pruebas se pueden marcar con? o algo así, lo que indica que no se ejecutaron porque la funcionalidad de la que dependen no pasó las pruebas.
Sé que las pruebas no deben ser frágiles. Pero no puedo evitar el hecho de que el código de inicialización es necesario para la correcta ejecución de otras funciones.
Este es un problema más general en el que algunas funciones dependen de otras funciones. Donde la "otra funcionalidad" se utiliza con demasiada frecuencia para proporcionar un valor real al fallar todas las pruebas que dependen de él. Sería mejor si la "otra funcionalidad" se probara por separado.
+1. Lo primero que pensé fue que las pruebas existentes que cubren su inicialización ya funcionan. Solo cuando refactorices tu código de inicialización, deberías volver a ejecutar esos casos hasta que te vuelvas a poner verde. Mi segundo pensamiento fue simplemente callarme y mirar lo que otros piensan. Lo más probable es que esa sea la mejor idea que haya tenido hoy. –
Todos los casos de prueba se ejecutan en nuestro servidor de compilación.El conjunto debe ser capaz de ejecutarse en conjunto, ya que es difícil y fácil perder algo si solo ejecuta las pruebas que cree que le afectan. Estas son pruebas de integración, por lo que se prueba más de una clase a la vez. – Deleted
exactamente lo que quise decir pero no fue capaz de explicar correctamente. –