Una delle ragioni spesso addotte per scrivere test di unità che deridono tutte le dipendenze e sono quindi completamente isolate è garantire che quando un bug esista, solo i test dell'unità per quel bug falliranno. (Ovviamente anche un test di integrazione potrebbe fallire). In questo modo puoi facilmente determinare dove si trova il bug.
Ma non capisco perché questa sia una proprietà utile. Se il mio codice stava subendo fallimenti spontanei, ho potuto capire perché è utile identificare prontamente il punto di errore. Ma se ho un test fallito o perché ho appena scritto il test o perché ho appena modificato il codice sotto test. In entrambi i casi, so già quale unità contiene un bug.
Che cosa è utile per garantire che un test fallisca solo a causa di bug nell'unità in prova? Non vedo come mi dia più precisione nell'identificare il bug di quanto non avessi già.