Frage

Duplizieren : Java: Wie Methoden zu testen, die System.exit ()?

nennen

Ich habe ein wenig Mühe einen Komponententest für ein Verfahren entwickeln, die die Anwendung beendet durch system.exit() aufrufen. Eigentlich ist der Konstruktor einer Klasse, die einige Bedingungen prüft und entscheidet, die Anwendung zu beenden. So ist es diese besondere Möglichkeit, die Ich mag würde testen.

Gibt es eine bestimmte assert, die ich verwenden könnte, oder andere Vorschläge?

public MyClass(arg1, arg2, arg3){
    if(argsTestingIsOK){
        continue;       
    }else{
        System.exit(0);
    }
}
War es hilfreich?

Lösung

Statt exit()-ing im Konstruktor, wirft ein Illegal statt (denn das ist, was wirklich passiert) und überlässt es den Anrufer die Ausnahme zu behandeln. Die Code-Anwendung kann geschrieben werden, um die Ausnahme zu verarbeiten, während der JUnit-Test geltend machen kann, dass die Ausnahme auftritt.

Andere Tipps

Tu das nicht in einem Konstruktor. Es ist eine schlechte Idee, und es ist irreführend für jeden Code verwendet wird.

Die beste Vorgehensweise ist nur so etwas wie System.exit () in einem Hauptverfahren oder in dem Einstiegspunkt in Ihrer Anwendung zu verwenden -. Auf jeden Fall nicht in der Mitte des Objektbau Code

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top