Sto provando a praticare TDD.Scoperta di altri oggetti durante il TDD
La mia comprensione è che TDD dovrebbe andare in questo modo
- Scrivi un elenco di test per l'interfaccia/classe che sto per svilupparsi.
- Inizia con il test più semplice non implementato dalla mia lista di test.
- Scrivi il test, nessun codice di implementazione ancora.
- Scrivere l'interfaccia della classe per compilare il codice.
- Eseguire il test risultante in un test non riuscito.
- Scrivere l'implementazione facendo passare il test.
- Rifattore il casino che ho fatto.
- Goto 2.
Il problema che ho è quando si scrive l'attuazione o fare il refactoring. Vengo spesso alla conclusione che l'implementazione che ho appena scritto dovrebbe essere delegata ad un'altra classe.
Cosa dovrebbe fare un vero TDD'r a questo punto?
- Lascia l'elenco dei test esistente da solo per un po 'e creare una nuova per la classe appena scoperto (lo stesso problema può manifestarsi in sede di attuazione della nuova classe offcourse)
- fare la fine di interazione Sulla base di testare e simulare la nuova classe, continuare con i test della classe su cui si sta lavorando e tornare più tardi per creare un'implementazione corretta della classe derisa.
- Questa situazione non dovrebbe presentarsi. Probabilmente non ho pensato abbastanza bene al mio progetto iniziale. (ma non sarebbe quello di sconfiggere uno degli scopi di TDD ?!).
Mi piacerebbe sapere come le altre persone gestiscono queste situazioni.
Ma le nuove classi dovrebbero essere testate di per sé, no? Se il design ti guida verso un punto in cui ti piace creare più classi di "supporto", il test unitario con cui hai iniziato sta diventando un test di integrazione. –