株式会社イーブ|未経験・転職の方も就職可能。Javaプログラマー育成のエキスパート

HOMEJAVA技術者育成システム開発求人情報個人情報保護

第 79 回 ~ JUnit4 その8 ~

トップページ > Java技術者育成 > Javaワンポイント > 第 79 回 ~ JUnit4 その8 ~

引き続き「JUnit4」について学んでいきます。


今回はassertThatメソッドを学びます。


assertThatメソッドはJUnit4.4で追加されたアサーションメソッドです。
assertNullメソッドなどのように直接比較を行うのではなく、比較処理を引数で記述します。


従来のアサーションメソッドに対する、assertThatメソッドのメリットは次の通りです。
・英文に近くなり、可読性が高い
・失敗時のメッセージの内容が理解しやすい
・比較処理を組み合わせることができる
・比較処理のカスタマイズができる


assertThatの比較用クラスの一つに、org.hamcrest.CoreMatchersクラスがあります。
英文として理解しやすいisメソッド、全ての条件が正しくなければテスト失敗となるallOfメソッドなど有用なメソッドが実装されています。


では、今回はCoreMatchersクラスを使ったサンプルを実行してみましょう。



public class Sample {


    public static Object returnNull() {
        return null;
    }


    public static int returnOne() {
        return 1;
    }


    public static boolean isOne(int i) {
        return i == 1 ? true : false;
    }


    public static boolean returnTrue() {
        return true;
    }


    public static Object returnNewObject() {
        return new Object();
    }

}





import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.*;


import org.junit.Test;
import org.junit.runner.JUnitCore;


public class SampleTest {


    public static void main(String[] args) {
        JUnitCore.main(SampleTest.class.getName());
    }


    @Test
    public void returnNull() {
        assertThat(Sample.returnNull(), nullValue());
    }


    @Test
    public void returnOne() {
        assertThat(Sample.returnOne(), equalTo(1));
    }


    @Test
    public void isOne() {
        assertThat(Sample.isOne(0), is(false));
        assertThat(Sample.isOne(1), is(true));
        assertThat(Sample.isOne(2), is(not(true)));
    }


    @SuppressWarnings("unchecked")
    @Test
    public void returnObject() {
        assertThat(Sample.returnNewObject(), allOf(notNullValue(), instanceOf(Object.class)));
    }


}



従来のアサーションメソッドより柔軟にテストが行えるようになりましたね。


[Javaワンポイント]内の前後の記事
第 80 回 ~ JUnit4 その9 ~
→ 第 79 回 ~ JUnit4 その8 ~
第 78 回 ~ JUnit4 その7 ~


■更新日時での前後の記事
11月26日 お天気
→ 第 79 回 ~ JUnit4 その8 ~
11月25日 お天気