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

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

第 80 回 ~ JUnit4 その9 ~

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

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


今回は前回と同じくassertThatメソッドを学びます。


前回、assertThatの比較用クラスとしてCoreMatchersクラスを使いました。
他に用意されているクラスとして、org.junit.matchers.JUnitMatchersクラスがあります。
JUnitMatchersクラスはコレクションの要素のチェック、文字列のチェックに適しています。


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



import java.util.Arrays;
import java.util.List;


public class Sample {


    public static <T> List<T> toList(T... ts) {
        return Arrays.asList(ts);
    }


    public static String returnHelloWorld() {
        return "Hello World!";
    }


}





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


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 toList() {
        // リストに1が含まれるか
        assertThat(Sample.toList(1, 2, 3), hasItem(1));


        // リストに1と2が含まれるか
        assertThat(Sample.toList(1, 2, 3), hasItems(1, 2));


        // リストの全ての要素が1でないか
        assertThat(Sample.toList(0, 3, 2), everyItem(is(not(1))));
    }


    @Test
    public void returnHelloWorld() {
        // 文字列に「Hello」が含まれるか
        assertThat(Sample.returnHelloWorld(), containsString("Hello"));


        // 文字列に「Hello」または「World」が含まれるか
        assertThat(Sample.returnHelloWorld(), either(containsString("Hello")).or(containsString("World")));


        // 文字列に「Hello」と「World」ともに含まれるか
        assertThat(Sample.returnHelloWorld(), both(containsString("Hello")).and(containsString("World")));
    }
}



CoreMatchersクラスと組み合わせることで、より簡単にテストが行えるようになりましたね。


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


■更新日時での前後の記事
12月3日 お天気
→ 第 80 回 ~ JUnit4 その9 ~
12月2日 お天気