Ho scritto questa lezione che fa alcune cose (forse questa è una violazione del Principio di Responsabilità Unica). Mi rendo conto ora che un'altra parte del progetto ha bisogno di un pezzo di quella logica e il modo in cui esporrò è quello di estrarre una classe dal mio sistema originale sotto test.
Prevedo di poterlo fare senza dover modificare alcun codice di test, ma al termine potrei sostenere che il test non è più un test unit . Verranno testati la classe originale e la classe che ho estratto. In altre parole, avrò un caso di test, ma due sistemi sotto test.
Dovrei rifattorizzare il mio codice di test dopo che ho finito? IE: creare un ExtractedClassTest e spostare tutti i test rilevanti da OriginalClassTest in esso? Sembra che potrebbe essere un po 'rischioso: potrei perdere un po' di copertura nel processo, potrebbe non essere semplice come spostare un test e finirei per riscrivere un codice di test che so che funzionava ma che non è più possibile, ecc.
D'altro canto, se esco da OriginalClassTest così com'è, posso vedere che si tratta di un problema di manutenzione del test. Sarà un po 'di confusione scoprire dove sono i test di ExtractedClass. La tua prima impressione sarà che non esiste. Con il passare del tempo con molti refactoring del codice di produzione, questo potrebbe diventare un problema serio.
Sono nuovo di TDD quindi mi piacerebbe un consiglio di un esperto. Grazie!