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ódigo, también pueden contener errores. Y si sus pruebas son defectuosas, difícilmente mejorarán su código.
Puedo pensar en tres posibles tipos de errores en las pruebas:
Errores lógicos, cuando el programador malinterpretó la tarea en cuestión y las pruebas hacen lo que él pensó que deberían hacer, lo cual está mal;
Errores en el marco de prueba subyacente (por ejemplo, una abstracción burlona permeable);
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 evitar (a menos que el programador solo ... se vuelva más inteligente). Sin embargo, (2) y (3) pueden ser manejables. ¿Cómo manejas 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?