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クラスのメソッドと期待する値を指定します。
- import static org.hamcrest.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")); //成功
}
}
関連の記事