Erwarten Sie eine Ausnahme oder eine seiner Unterklassen in Junit Test mit @Test Annotation

8

Ich habe einen Test, der eine bestimmte Ausnahme erwartet, zum Beispiel:

%Vor%

Die myMethod() -Methode löst tatsächlich eine Unterklasse von MyException aus, lässt sie MySubclassException nennen.

Gibt es überhaupt eine Möglichkeit, meinen Test zu definieren, indem ich die @Test -Anmerkung verwende, um Unterklassen von MyException sowie die Klasse selbst zu akzeptieren?

Ich weiß, dass ich die Testüberprüfungslogik einfach schreiben könnte, ohne expected zu verwenden, indem ich die Ausnahme abfange und ein Flag setze, aber ich frage mich, ob JUnit bereits passende Unterklassen unterstützt.

    
chrisbunney 10.01.2012, 10:17
quelle

3 Antworten

3

Dies wird vom Framework bereits für Sie erledigt.

Nehmen wir ein kleines Beispiel (sehr schlechter Code):     Importieren Sie static org.junit.Assert. *;

%Vor%

Mit 2 Ausnahmeklassen erben MyException und MyExtendedException von der vorherigen und eine einfache Foo-Klasse wie diese:

%Vor%

Beim Starten des Tests mit dem Eclipse-Runner wird ein grüner Balken gedruckt, da der Test eine Instanz von Myexception auslöst (ist eine Beziehung in POO)

Wenn Sie Quellcode lesen möchten, ist dies ein Auszug aus dem Junit-Quellcode (ExpectException.java):

%Vor%     
romje 10.01.2012, 10:52
quelle
3

Der Test wird bestanden, wenn MyException oder MySubclassException von myMethod() geworfen wird. Ich habe das Konzept mit diesem Code getestet:

%Vor%     
Klarth 10.01.2012 10:53
quelle
0

BDD Style-Lösung mit Ausnahme fangen

%Vor%

Abhängigkeiten

%Vor%     
MariuszS 15.11.2013 20:04
quelle

Tags und Links