Da un po 'di tempo ho cercato di imparare a scrivere test unitari per il mio codice.
Inizialmente ho iniziato a fare il vero TDD, in cui non avrei scritto alcun codice fino a quando non avessi scritto per prima cosa un test negativo.
Tuttavia, di recente ho avuto un problema spinoso da risolvere che ha coinvolto un sacco di codice. Dopo aver trascorso un paio di settimane a scrivere test e poi codice, sono giunto alla sfortunata conclusione che il mio intero approccio non avrebbe funzionato, e avrei dovuto buttare via due settimane di lavoro e ricominciare.
Questa è una decisione abbastanza brutta da venire quando hai appena scritto il codice, ma quando hai scritto anche diverse centinaia di test unitari diventa ancora più difficile dal punto di vista emotivo buttare tutto via.
Non posso fare a meno di pensare che ho sprecato 3 o 4 giorni di sforzi scrivendo quei test quando avrei potuto mettere insieme il codice per la dimostrazione del concetto e poi aver scritto i test dopo che ero soddisfatto del mio approccio.
In che modo le persone che praticano il TDD gestiscono correttamente tali situazioni? C'è un motivo per piegare le regole in alcuni casi o scrivi sempre pedissequamente i test, anche quando quel codice potrebbe rivelarsi inutile?