Ho un servizio che esegue una logica aziendale piuttosto complicata quando riceve una richiesta. Ho la maggior parte delle funzionalità isolate in metodi privati che si abbassano di un paio di livelli rispetto al metodo che riceve la richiesta. In pratica ricevi la richiesta - > metodo privato per il sottoprocesso - > metodo privato per l'elaborazione di azioni diverse - > metodo che crea un risultato - > metodo che verifica il risultato.
Posso chiamare ciascuno di questi metodi in sequenza e passare i vari risultati tra ogni metodo privato oppure posso chiamare un metodo dall'interno del metodo successivo e continuare a passare i dati tra i passaggi nell'altro modo
//either passing around as returns or class variables
public onRequest(Request request){
method1(request) // Returns two things for method 2
method2(thing1, thing2) //Modifies and thing1 and thing2
method3(thing1Mod, thing2Mod) //Returns a result
verify(result)
return result
}
Opzione 2
public onRequest(Request request{
Result result = method1(request)
}
method1(request){
//logic that makes thing1 thing2
return method2(thing1, thing2)
}
method2 (thing1, thing2)
//logic to modify thing1 and thing2
return method3(thing1, thing2)
method3 (thing1, thing2) {
//logic that gets a result from thing1, thing2
verify(result)
return result
}
Ogni metodo contiene funzionalità discrete.
Il motivo per cui sono preoccupato è che sto provando a scrivere casi di test e voglio solo lasciare onRequest pubblico, ma voglio ancora testare i metodi 1-3 e verificare individualmente.
Il progetto è in Java