JUNIT testet Methoden für ungültig

Ich habe eine Java-Klasse, die voll von Void-Methoden ist, und ich möchte einen Unit-Test durchführen, um eine maximale Codeabdeckung zu erzielen.

Zum Beispiel habe ich diese Methode:

protected static void checkifValidElements(int arg1,  int arg2) {
    method1(arg1);
    method2(arg1);
    method3(arg1, arg2);
    method4(arg1, arg2);
    method5(arg1);
    method6(arg2);
    method7();
}

Es ist aus einem Grund schlecht benannt, weil ich den Code zum besseren Verständnis übersetzt habe. Jede Methode überprüft, ob die Argumente in irgendeiner Weise gültig und gut geschrieben sind.

Beispiel:

private static void method1(arg1) {
    if (arg1.indexOf("$") == -1) {

        //Add an error message 
        ErrorFile.errorMessages.add("There is a dollar sign in the specified parameter");
    }
}

Mein Komponententest deckt die kleinen Methoden in Ordnung ab, da ich sie auffordere, zu überprüfen, ob die ErrorFile die Fehlermeldung enthält, aber ich sehe nicht, wie ich meine Methode checkIfValidElements testen kann. Sie gibt nichts zurück oder ändert nichts. Wenn ich mit Maven eine Codeabdeckung durchführe, wird mir mitgeteilt, dass der Unit-Test diesen Teil meiner Klasse abdeckt.

Die einzige Möglichkeit, die ich sehe, besteht darin, diese Methode so zu ändern, dass sie einen Int- oder Bollean-Wert zurückgibt:

protected static int checkifValidElements(int arg1,  int arg2) {
    method1(arg1);
    method2(arg1);
    method3(arg1, arg2);
    method4(arg1, arg2);
    method5(arg1);
    method6(arg2);
    method7();
    return 0;
}

Mit dieser Methode kann ich behaupten, dass es gleich ist, aber es scheint mir, dass es sinnlos ist, dies zu tun. Das Problem ist, dass ich ein paar Klassen habe, die so konzipiert sind und die Abdeckung meiner Unit-Tests um% verringern.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage