Diciamo che ho un metodo chiamato 'functionA' che viene chiamato da un servizio e che esegue un singolo pezzo di funzionalità, è facile da testare in quanto è una cosa sola.
Se qualche mese dopo arriva un nuovo requisito che richiede che venga chiamato un altro metodo 'functionB' direttamente dopo che 'functionA' è stata eseguita. Qual è l'approccio migliore per aggiungere functionB al mio codice.
per chiamare "functionB" alla fine del metodo "functionA":
functionA() {
//do something..
functionB();
}
functionB() {
//do somehting...
}
Il problema è che quando I unit test functionA chiamerà functionB che sarà anche parte del test (quindi ora è più di un test di integrazione).
Oppure rifattora il codice con un nuovo metodo 'functionX' che chiama 'functionA' e quindi 'functionB'?
functionX() {
functionA();
functionB();
}
functionA() {
//do something..
}
functionB() {
//do somehting...
}
Posso testare individualmente entrambi i metodi, ma ora ho modificato l'API.
Vedo il primo approccio così tanto nel codice legacy, è la migliore prassi per rendere sempre i metodi chiusi per la modifica o ci sono esempi quando è OK utilizzare il primo approccio?