LoginSignup
4
4

More than 3 years have passed since last update.

JUnitでの例外発生の確認

Posted at

概要と目的

JUnitを書く上で、想定通りに例外が発生することを確認することがあると思います
その際の確認方法を記載します

確認方法

検証対象メソッド 

    public void checkInt(String intStr){
        try {
            Integer.parseInt(intStr);
        }catch (NumberFormatException e){
            throw new IllegalArgumentException("引数が数値ではありません " + intStr);
        }
    }

シンプルな記載方法

発生する例外を記載して、想定した型の例外が発生することを確認
@Testに追加で、発生する例外クラスを指定する

    @Test(expected = IllegalArgumentException.class)
    public void 例外が発生することを確認(){
        new TestTarget().checkInt("a");
    }

この場合、想定する例外が出なかったらテストとしてはエラーとなる

例外の中身を確認する方法

  • 上記シンプルな記載方法に加えて以下実装を追加
  • 想定例外をキャッチして、例外の中身を精査
  • 精査後キャッチした例外を投げる
    • わざわざfail()を記載しなくてもこれで十分
    @Test(expected = IllegalArgumentException.class)
    public void 例外中身を確認() {
        try {
            new TestTarget().checkInt("a");
        } catch (IllegalArgumentException e) {
            assertEquals("引数が数値ではありません a",e.getMessage());
            throw e;
        }
    }
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4