Ho scritto questa lezione che fa alcune cose (forse questa è una violazione del principio della responsabilità singola). Ora mi rendo conto che un'altra parte del progetto ha bisogno di un pezzo di quella logica e il modo in cui lo esporrò è quello di estrarre una classe dal mio originale System Under Test.
Prevedo di essere in grado di farlo senza dover modificare alcun codice di test, ma quando avrò finito, potresti obiettare che il test non è più un test unitario . Testerà la classe originale e la classe che ho estratto. In altre parole, avrò un caso di prova, ma due sistemi in prova.
Devo refactificare il mio codice di prova dopo aver 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 conosco funzionava ma che potrebbe non essere più, eccetera.
D'altra parte, se lascio OriginalClassTest così com'è, vedo che si tratta di un problema di manutenzione di prova. Sarà un po 'confuso scoprire dove si trovano i test di ExtractedClass. La tua prima impressione sarà che non esista. Nel tempo, con molte rifatturazioni del codice di produzione, questo potrebbe diventare un problema serio.
Sono nuovo di TDD, quindi vorrei il parere di un esperto. Grazie!