💬

AssertJを利用したExceptionの確認方法

2025/02/01に公開

やったこと

対象のメソッドで発生する例外を期待値としてテスト。
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 をしても対象のエラーをキャッチすることはできない。

参考記事

【Java】よく使う assertThat のメソッド集【AssertJ】"

GitHubで編集を提案

Discussion