Supponi di avere dei test per due metodi di una classe. Il primo metodo raccoglie i dati da un altro livello e li inserisce in una sorta di memoria indipendente dal runtime (come una tabella SQL), quindi tutti i dati gestiti da questo test sono codificati nel test. Il secondo metodo è responsabile di prendere i dati da dove il primo metodo li ha lasciati e trasformarli in qualche modo (calcolo, spostare alcune parti altrove, ecc.).
Ora questo secondo metodo potrebbe avere input hardcoded come il primo, oppure si potrebbe presumere che i due test sarebbero stati eseguiti in sequenza e potrebbe riprendere da dove si era interrotto il primo test, prendendo i dati che erano realmente memorizzati dal primo test.
Se avessi scelto la seconda opzione, avresti davvero una buona idea che i due metodi funzionassero bene insieme, tuttavia, se il 1 ° test fallisse, tutti i test successivi fallirebbero, eliminando i vantaggi del test aiutando a isolare i bug più rapidamente.
Se avessi scelto la prima opzione, ogni metodo sarebbe stato isolato e testato indipendentemente, ma non avresti mai saputo che potevano davvero funzionare insieme correttamente.
Qual è l'opzione migliore qui? Esiste una sorta di alternativa come avere un singolo test per ogni metodo isolato con hardcoding e quindi test più grandi che contengono entrambi i metodi in uno?