Java assertThatメソッドのサンプル

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

確認環境
・eclipse4.6
・junit-4.12
・hamcrest-core-1.3

目次

HamcrestのCoreMatchersクラス

assertThatメソッドの中でHamcrestのCoreMatchersクラスのメソッドを使用します。
上記の目次にあるisメソッドからhasItemsメソッドまでCoreMatchersクラスのメソッドです。

Hamcrestの公式サイトです。
http://hamcrest.org/JavaHamcrest/

HamcrestのJavaDocです。
http://hamcrest.org/JavaHamcrest/javadoc/1.3/

isメソッド

assertThat(実際の値、is(期待する値));

実際の値と期待する値が同じ場合、成功になります。

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")); //成功
	}
}

nullValueメソッド

assertThat(実際の値, is(nullValue()));

実際の値が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())); //成功
	}
}

notNullValueメソッド

assertThat(実際の値, is(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 test3() {
		String test3 = "null";
		assertThat(test3, is(notNullValue())); //成功
	}
}

sameInstanceメソッド

assertThat(インスタンス, is(sameInstance(インスタンス)));

同じインスタンスである場合、成功になります。

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))); //成功
	}
}
class Testclass1 {
	public String getTestclass1() {
		return "1";
	}
}

instanceOfメソッド

assertThat(インスタンス, is(instanceOf(クラス)));

JavaのinstanceOfと同じように使えます。
クラスのインスタンスである場合、成功になります。

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

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

notメソッド

assertThat(実際の値, is(not("abc"));

値を反転します。
上記の例では実際の値が文字列のabcでない場合、成功になります。

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

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

hasItemメソッド

assertThat(実際の値(リスト,配列), hasItem(期待する値));

リストや配列などに期待する値がある場合、成功になります。

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 test7() {
		List<String> colors = new ArrayList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		assertThat(colors, hasItem("黄")); //成功
	}
}

hasItemsメソッド

assertThat(実際の値、is(期待する値));

リストや配列などに期待する値(複数の値)がある場合、成功になります。

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 test8() {
		List<String> colors = new ArrayList<>();
		colors.add("赤");
		colors.add("黄");
		colors.add("青");
		assertThat(colors, hasItems("黄", "青")); //成功
	}
}

関連の記事

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

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る