多数の例外をスローする関数のテスト ケースを作成する場合、これらの例外のスロー宣言をテスト メソッドに追加するか、個々の例外を個別にキャッチする必要があります。それについての正しい方法は何ですか?try-catch の方が良い方法だと思いますが、catch ブロックでスタックトレースを出力する必要がありますか?
たとえば、をgetGroups(String name)
スローするメソッドがありAuthenticationException
ます。パラメーターが nullIllegalArgumentException
のときに がスローされるかどうかを確認するテスト ケースを作成した場合、どのように処理すればよいですか? メソッドのスロー部分に追加するか、例外をブロックで囲む必要がありますか。name
AuthenticationException
try-catch
@Test
public void testGetGroupsWithNull() throws AuthenticationException {
thrown.expect(IllegalArgumentException.class);
getGroups(null);
}
上記のテスト ケースでは を追加しましたthrows AuthenticationException
が、例外を try-catch ブロックで囲む方がよいかどうか、および例外をキャッチした後に何をすべきかを知りたいです。スタックトレースを印刷できました。
AuthenticationException
「throws」句ではなく、try/catch ブロックに配置することで、予期しない例外を処理しています。
@Test
public void testGetGroupsWithNull() {
thrown.expect(IllegalArgumentException.class);
try {
getGroups(null);
} catch(AuthenticationExcption e) {
Assert.fail("Authentication Exception");
}
}