Java assertThatメソッドのサンプル

JavaのJUnit4で使用するassertThatメソッドのサンプルです。

実行環境
・eclipse4.6
・junit-4.12
・hamcrest-core-1.3

JUnit4のテストのサンプルについてはJava JUnit4のテストのサンプルを参照願います。

メソッド

assertThatメソッドで使用するHamcrestのCoreMatchersクラスの主なメソッドです。
Hamcrestはテスト作成を支援するフレームワークです。
以下はHamcrestの公式サイトです。
http://hamcrest.org/JavaHamcrest/

メソッド 説明
is 実際の値と期待する値が同じ場合、成功になる
assertThat(実際の値、is(期待する値));
nullValue 実際の値がnullである場合、成功になる
assertThat(実際の値, is(nullValue()));
notNullValue 実際の値がnot nullである場合、成功になる
assertThat(実際の値, is(notNullValue()));
sameInstance 同じインスタンスである場合、成功になる
assertThat(実際の値, is(sameInstance(期待する値)));
instanceOf JavaのinstanceOfと同じように使える
実際の値と期待する値が同じ場合、成功になる
assertThat(実際の値, is(instanceOf(期待する値)));
not 値を反転する
以下の例では実際の値が文字列のabcでない場合、成功になる
assertThat(実際の値, is(not("abc"));
hasItem リストや配列などに期待する値がある場合、成功になる
assertThat(実際の値(リスト,配列), hasItem(期待する値));
hasItems リストや配列などに期待する値(複数の値)がある場合、成功になる
assertThat(実際の値(リスト,配列), hasItems(期待する値, 期待する値));

コード

コードのサンプルです。
テストはすべて成功です。

package test1;

import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

/**
 * assertThatメソッドの確認
 */
public class Test1Test {

	/**
	 * isメソッド
	 */
	@Test
	public void test1() {
		assertThat("test", is("test"));
	}

	/**
	 * nullValueメソッド
	 */
	@Test
	public void test2() {
		String test2 = null;
		assertThat(test2, is(nullValue()));
	}

	/**
	 * notNullValueメソッド
	 */
	@Test
	public void test3() {
		String test3 = "null";
		assertThat(test3, is(notNullValue()));
	}

	/**
	 * sameInstanceメソッド
	 */
	@Test
	public void test4() {
		Testclass1 t1 = new Testclass1();
		Testclass1 t2 = new Testclass1();
		t2 = t1;
		assertThat(t1, is(sameInstance(t2)));
	}

	/**
	 * instanceOfメソッド
	 */
	@Test
	public void test5() {
		Testclass1 t1 = new Testclass1();
		assertThat(t1, is(instanceOf(Testclass1.class)));
	}

	/**
	 * notメソッド
	 */
	@Test
	public void test6() {
		assertThat("test1", is(not("test2")));
	}

	/**
	 * hasItemメソッド
	 */
	@Test
	public void test7() {
		List<String> colors = new ArrayList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		assertThat(colors, hasItem("黄"));
	}

	/**
	 * hasItemsメソッド
	 */
	@Test
	public void test8() {
		List<String> colors = new ArrayList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		assertThat(colors, hasItems("黄", "青"));
	}
	
	/**
	 * 確認用のクラス1
	 */
	public class Testclass1 {
		public String getTestclass1() {
			return "1";
		}
	}
}

関連の記事

Java JUnit4のテストのサンプル
Java JMockitのテストのサンプル




△上に戻る