Nous testons notre code pour le rendre plus correct (en fait, moins susceptible d'être incorrect ). Cependant, les tests sont aussi du code - ils peuvent également contenir des erreurs. Et si vos tests sont bogués, ils n'améliorent guère votre code.
Je peux penser à trois types d’erreurs possibles dans les tests:
Erreurs logiques, lorsque le programmeur a mal compris la tâche à accomplir et que les tests font ce qu'il pensait devoir faire, ce qui est faux;
Erreurs dans la structure de test sous-jacente (par exemple, une abstraction moqueuse qui fuit);
Bugs dans les tests: le test est légèrement différent de ce que le programmeur pense.
Les erreurs de type (1) semblent impossibles à prévenir (à moins que le programmeur ... devienne plus intelligent). Cependant, (2) et (3) peuvent être traitables. Comment gérez-vous ces types d'erreurs? Avez-vous des stratégies spéciales pour les éviter? Par exemple, écrivez-vous des tests "vides" spéciaux, qui vérifient uniquement les présupposés de l'auteur du test? De plus, comment abordez-vous le débogage d'un scénario de test cassé?