Hamcrest – null値をチェックするアサート方法
HamcrestassertThat
アサーションでnull値をチェックしようとしますが、方法がわかりませんか?
@Test public void testApp() { //ambiguous method call? assertThat(null, is(null)); }
1. 溶液
1.1 To check null value, try is(nullValue)
, remember static import org.hamcrest.CoreMatchers.*
//hello static import, nullValue here import static org.hamcrest.CoreMatchers.*; import org.junit.Test; //... @Test public void testApp() { //true, check null assertThat(null, is(nullValue())); //true, check not null assertThat("a", is(notNullValue())); }
1.2 Or this equivalent
import static org.hamcrest.CoreMatchers.*; import org.hamcrest.core.IsNull; import org.junit.Test; //... @Test public void testApp() { //true, check null assertThat(null, is(IsNull.nullValue())); //true, check not null assertThat("a", is(IsNull.notNullValue())); }
上記のCoreMatchers.nullValue()
(1.1)は、IsNull.nullValue
の省略形です。次のソースコードを確認してください。
org.hamcrest.CoreMatchers.java
public static org.hamcrest.MatchernullValue() { return org.hamcrest.core.IsNull.nullValue(); }
P.S Same to `notNullValue()`
Note
JUnitアサーションが必要な場合は、assertNull(null)
を試してください