Ich verwendet JUnit (4) um meinen Quellcode zu testen. Wenn ein Code eine Exception wirft, die von java.lang.Exception erbt, kann ich das gut testen mit
[code=Java] @Test(expected = MyException.class)
public void testCase1() {
MyClass m = new MyClass();
m.doSomething(); // wirft die Exception;
}[/code]
Und alles ist fein. Genauso kann ich es auch mit einer java.lang.RuntimeException machen:
[code=Java] @Test(expected = MyRuntimeException.class)
public void testCase2() {
MyClass m = new MyClass();
m.doSomethingOther(); // wirft die RuntimeException;
}[/code]
Nun möchte ich aber nach dem Test der Exception auch noch die Ausgaben, die davor in [code]doSomethingOther()[/code] stattfanden testen. Dafür würde ich ihm gern sagen, dass das werfen der Exception in Ordnung ist, er aber nicht abbrechen soll dabei. Versuche ich es einfach, indem ich die Klammer mit [code]expected=[/code] weglasse, bekomme ich im Fehlertrace den Hinweis auf die geworfene Exception in meiner Methode und die Verarbeitung des Testfalles bricht dann ab, alle Zeilen unter dem Aufruf von [code]doSomethingOther()[/code] werden nicht mehr ausgeführt.
Gibt es da einen Weg, oder kann man so etwas nicht testen?