💬
AssertJを利用したExceptionの確認方法
やったこと
対象のメソッドで発生する例外を期待値としてテスト。
assertThatThrownBy を利用。
// Hogeクラス
public class Hoge{
String name;
public Hoge(String name){
if (name.length() < 2){
throw new RuntimeException("名前を3文字以上にしてください。");
}
}
}
//具体的なテストコード RuntimeExceptionのみを観測
assertThatThrownBy(
() -> new Hoge("1")
).isInstanceOf(
RuntimeException.class
);
注意
Exception が try-catch 等で処理されていると、そのメソッド外に例外が吐き出されることはない。
そのため、try-catch で処理された後に呼び出されているメソッドで assertThatThronBy をしても対象のエラーをキャッチすることはできない。
Discussion