Probamos nuestro código para hacerlo más correcto (en realidad, es menos probable que sea incorrecto ). Sin embargo, las pruebas también son códigos, también pueden contener errores. Y si sus pruebas tienen errores, difícilmente mejorarán su código.
Puedo pensar en tres tipos posibles de errores en las pruebas:
-
Errores lógicos, cuando el programador no entendió la tarea en cuestión y las pruebas hacen lo que pensaron que deberían hacer, lo que está mal;
-
Errores en el marco de prueba subyacente (p. ej., una abstracción burlona);
-
Errores en las pruebas: la prueba está haciendo un poco diferente de lo que el programador cree que es.
Los errores de tipo (1) parecen ser imposibles de prevenir (a menos que el programador simplemente ... se vuelva más inteligente). Sin embargo, (2) y (3) pueden ser manejables. ¿Cómo lidiar con este tipo de errores? ¿Tienes alguna estrategia especial para evitarlos? Por ejemplo, ¿escribe algunas pruebas especiales "vacías", que solo verifican las presuposiciones del autor de la prueba? Además, ¿cómo aborda la depuración de un caso de prueba roto?