Se turn_twizzles
, push_buttons
e move_mountain
sono pubblici e richiamati da un altro codice, penso che sia importante rifattorizzare i test per verificare singolarmente queste funzioni.
Sfortunatamente dopo il refactor hai un problema: al test unitario do_everything
devi essere in grado di simulare turn_twizzles
, push_buttons
e move_mountain
. Scrivere test per do_everything
senza prendere in giro le dipendenze sarà un test di integrazione - non necessariamente una cosa negativa a seconda del piano di test, ma non ci sarà molto vantaggio perché stai già testando individualmente le tre funzioni più piccole. Questo potrebbe essere il momento giusto per riprogettare questo componente e collaborare con altri oggetti per eseguire tutto il lavoro di do_everything
.
Se turn_twizzles
, push_buttons
e move_mountain
non vengono chiamati esternamente, devono essere contrassegnati come privati e non è consigliabile testarli separatamente da do_everything
. Questo perché da una prospettiva esterna, do_everything
sarebbe l'unità più piccola (perché gli altri sono inaccessibili). Vedi anche questa risposta su come suddividere i metodi usando metodi privati.