Wenn ich Testfälle für eine Funktion schreibe, die eine Reihe von Ausnahmen auslöst, sollte ich eine throws-Deklaration für diese Ausnahmen in meiner Testmethode hinzufügen Fange jede einzelne Ausnahme. Was ist der richtige Weg? Ich glaube, Try-Catch ist ein besserer Weg, aber im Catch-Block sollte ich den StackTrace drucken?Sollten jUnit-Testfälle Standardausnahmen in einer throws-Deklaration oder in einem try catch-Block behandeln
Zum Beispiel habe ich eine Methode getGroups(String name)
, die AuthenticationException
wirft. Wenn ich einen Testfall schreibe, um zu überprüfen, ob eine IllegalArgumentException
ausgelöst wird, wenn der Parameter name
null ist, wie handhabe ich die AuthenticationException
? Füge ich es zu einem Teil meiner Methode hinzu oder schließe die Ausnahme in einen try-catch
Block ein.
@Test
public void testGetGroupsWithNull() throws AuthenticationException {
thrown.expect(IllegalArgumentException.class);
getGroups(null);
}
In dem obigen Testfall habe ich nur eine throws AuthenticationException
, aber ich würde gerne wissen, ob es besser ist, die Ausnahme in einem Try-Catch-Block zu umschließen und was shoudld ich tun, nachdem die Ausnahme zu kontrollieren. Ich könnte die Stapelverfolgung drucken.
Ich verarbeite die unerwartete Ausnahme AuthenticationException
, indem ich sie nicht in die 'throws' Klausel setze, sondern in einen try/catch Block.
@Test
public void testGetGroupsWithNull() {
thrown.expect(IllegalArgumentException.class);
try {
getGroups(null);
} catch(AuthenticationExcption e) {
Assert.fail("Authentication Exception");
}
}
Hat meine Antwort Ihnen geholfen oder Ihre Frage gelöst? –