Ich habe eine Klasse, die eine Zeichenfolge verarbeitet und viele Aktionen nacheinander ausführt.Refactoring, um private Methoden für Unit-Tests verfügbar zu machen
Diese Aktionen müssen in einer bestimmten Reihenfolge ausgeführt werden.
Beispiel:
public String process(String stringToProcess) throws Exception {
processedString = process1(processedString);
processedString = process2(processedString);
processedString = process3(processedString);
processedString = process4(processedString);
...
processedString = process10(processedString);
...
return processedString;
}
Ich bin sicher, dass es einen besseren Weg, dies zu machen, sauberer, Refactoring ist aber vor allem möchte ich Unit-Test process1 der Lage sein, process2 usw.
Beachten Sie, dass process1, 2 etc ... ob 2-Linien-Methoden oder große sein können.
Ich würde die Prozessmethoden irgendwie öffentlich sein müssen, um sie zu testen. Gibt es ein Entwurfsmuster, das dies erreichen würde?
Ich dachte über Enums, um dies zu erreichen, aber ich dachte, dass es irgendwie verwirrender macht. Diese Implementierung ist nicht die beste, aber auf einen Blick wissen Sie, was passiert.
Bearbeiten: Dieser Ansatz ist nicht zu schlecht für mich, aber alle Prozessmethoden sollten privat sein. Und ich möchte sie testen. Ich sah dies question, so dass ich sie auch wenn privat testen kann, aber der erste Schritt ist, um sicherzustellen, dass es nicht besser gemacht werden konnte.
Was mit Ihrem aktuellen Ansatz ist falsch? –