Java assertThatメソッドのサンプル

JavaのJUnit4で使用するassertThatメソッドのサンプルです。
JUnit4のテストのサンプルについてはJava JUnit4のテストのサンプルを参照願います。

確認環境
・eclipse 4.8/4.7/4.6
・junit-4.12
・hamcrest-core-1.3

目次

assertThatメソッドとHamcrestのCoreMatchersクラス

assertThat(実際の値、CoreMatchersクラスのメソッド(期待する値));
  • assertThatメソッドの中でHamcrestのCoreMatchersクラスのメソッドを使用します。
  • 目次にあるメソッドは、CoreMatchersクラスのメソッドです。
  • 1つめの引数は、実際に受け取る値です。
  • 2つめの引数は、CoreMatchersクラスのメソッドと期待する値を指定します。
  • 以下は、Hamcrestの公式サイトです。
    http://hamcrest.org/JavaHamcrest/

値を比較する(is,not)

isメソッドは、実際の値と期待する値が同じ場合、成功になります。
notメソッドは、否定になります。

package test1;
import static org.junit.Assert.*;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
	@Test
	public void test1() {
 		String test1 = "test";
		assertThat(test1, is("test")); //成功
		assertThat("test1", is(not("test2"))); //成功
	}
}

値がnullか確認する(nullValue,notNullValue)

nullValueメソッドは、値がnullである場合、成功になります。
notNullValueメソッドは、値がnot nullである場合、成功になります。

package test1;
import static org.junit.Assert.*;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
	@Test
	public void test2() {
		String test2 = null;
		assertThat(test2, is(nullValue())); //成功
		String test3 = "null";
		assertThat(test3, is(notNullValue())); //成功
	}
}

インスタンスを確認する(sameInstance,instanceOf)

sameInstanceメソッドは、同じインスタンスである場合、成功になります。
instanceOfメソッドは、クラスのインスタンスである場合、成功になります。

package test1;
import static org.junit.Assert.*;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
	@Test
	public void test4() {
		Testclass1 t1 = new Testclass1();
		Testclass1 t2 = t1;
		assertThat(t1, is(sameInstance(t2))); //成功
		assertThat(t1, is(instanceOf(Testclass1.class))); //成功
	}
}
class Testclass1 {
	public String getTestclass1() {
		return "1";
	}
}

リストや配列の値を確認する(hasItem,hasItems)

リストや配列などの値に対して、
hasItemメソッドは、期待する値がある場合、成功になります。
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.*;

public class Test1Test {
	@Test
	public void test1() {
		List<String> colors = new ArrayList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		assertThat(colors, hasItem("黄")); //成功
		assertThat(colors, hasItems("黄", "青")); //成功
	}
}

文字列を確認する(containsString,startsWith,endsWith)

containsStringメソッドは、引数の文字が含まれていれば成功になります。
startsWithメソッドは、引数の文字から始まっていれば成功になります。
endsWithメソッドは、引数の文字で終わっていれば成功になります。

package test1;
import static org.junit.Assert.*;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.*;

public class Test1Test {
	@Test
	public void test1() {
 		String test1 = "123testABC";
		assertThat(test1, containsString("test")); //成功
		assertThat(test1, startsWith("12")); //成功
		assertThat(test1, endsWith("BC")); //成功
	}
}

関連の記事

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

△上に戻る