Hamcrestで何かがnullであることを主張する方法


144

どのように私assertThatnull何かですか?

例えば

 assertThat(attr.getValue(), is(""));

しかし、私はに入れることができないというエラーが表示さnullis(null)ます。

回答:


256

あなたはIsNull.nullValue()方法を使うことができます:

import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

メソッドnullValue()が定義されていない
user2811419

2
@ user2811419。インポートする必要がありますIsNullそれはそのクラスの静的メソッドです。するかstatic import、使うだけですIsNull.nullValue()
Rohit Jain 2013

import static org.hamcrest.core.IsNull.nullValue;クラスに追加します。
Rohit Jain 2013

4
Hamcrestの新しいバージョンでは、名前空間が変更され、必要になりますimport static org.hamcrest.CoreMatchers.nullValue
ThomasW、2016年

30

なぜassertNull(object)/を使わないのassertNotNull(object)ですか?


8
+1私は一般にHamscrestアサーションを好みますが、これはJunitアサーションがより読みやすいIMOの1つのケースです。
spaaarky21 2014年

9
assertThat()は、他の多くのassert *メソッドよりも優れたロギングを提供します。この理由から、私が使用するテストコーディング標準では、他のすべてのアサーションメソッドよりもassertThat()を使用しています。
efelton 2015

3
assertThatとassertNulを使用する場合の主な利点は、Englsihの音声フレーズに近いということです。アサーションを読んで確認してください。
ベルゴロ2016

errorCollectorを使用することは、assertNull / assertNotNullではなくhamcrestマッチャーを使用するのに十分な理由です。
タイラーマクミラン2017年

15

したいhamcrest場合は、行うことができます

import static org.hamcrest.Matchers.nullValue;

assertThat(attr.getValue(), is(nullValue()));

ではJunit、あなたが行うことができます

import static junit.framework.Assert.assertNull;
assertNull(object);

11

以下を使用します(Hamcrestから):

assertThat(attr.getValue(), is(nullValue()));

Kotlin isでは予約されているので、次を使用します。

assertThat(attr.getValue(), `is`(nullValue()));

エスケープする必要のない代替手段はありisますか?
VIN
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.