Testiamo il nostro codice per renderlo più corretto (in realtà meno probabilità di essere errato ). Tuttavia, i test sono anche codice - possono anche contenere errori. E se i tuoi test sono buggy, difficilmente riescono a migliorare il tuo codice.
Posso pensare a tre possibili tipi di errori nei test:
-
Errori logici, quando il programmatore ha frainteso l'attività in corso e i test fanno ciò che pensavano di dover fare, il che è sbagliato;
-
Errori nel framework di test sottostante (ad es. un'astrazione di derisione leaky);
-
Bug nei test: il test sta andando leggermente diverso da quello che pensa il programmatore.
Gli errori di tipo (1) sembrano impossibili da prevenire (a meno che il programmatore non ... diventi più intelligente). Tuttavia, (2) e (3) possono essere trattabili. Come gestisci questi tipi di errori? Avete delle strategie speciali per evitarli? Ad esempio, scrivi alcuni test "vuoti" speciali, che controllano solo i presupposti dell'autore del test? Inoltre, come ti avvicini al debug di un caso di test rotto?