TDD significa testare prima di iniziare a scrivere codice di produzione. Quindi inizio a scrivere un test per MyClass
chiamato MyClassTest
. Fallisce e comincio a implementare la funzionalità desiderata in MyClass
.
Durante la fase di implementazione di MyClass
ho riscontrato che le modifiche su un'altra classe (ad esempio MyClassUtils
) sono necessarie per essere eseguite. MyClassUtils
ha una sua classe di test. A seguito di TDD dovrei testare prima di implementare qualsiasi nuova funzionalità. Quindi dovrei interrompere il lavoro su MyClass
per il primo test e implementare prima i metodi necessari in MyClassUtilsTest
? Oppure è meglio tracciare in qualche modo (ad esempio scrivendolo su carta, TODO nel codice, ecc.) I metodi di test che devono essere aggiunti e ignorare "testare prima"?
Spesso incontro questo problema e non sono sicuro di quale sia il modo migliore per affrontarlo. La prima possibilità porta a commit più grandi e incasinati con cambiamenti in almeno quattro classi e periodi di tempo più lunghi senza commit. Il secondo non tiene conto del primo principio del test, porta a un arretrato di test non implementati e riduce la copertura del codice.
Come ci si comporta? Sono grato per ogni consiglio. :)