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.
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%Tags und Links java unit-testing junit junit4