web-dev-qa-db-ja.com

JUnitでリストが空ではないことを表明する

JUnit 4でリストが空ではないと断言したいのですが、グーグルで検索したとき、この投稿を見つけました: リストがHamcrest これはHamcrestを使用していました。

assertThat(result.isEmpty(), is(false));

これは私にこのエラーを与えます:

メソッドis(boolean)は、MaintenanceDaoImplTestタイプでは未定義です

Hamcrestを使用せずにこれを行うにはどうすればよいですか。

30
Ichigo Kurosaki

単純に使用できます

assertFalse(result.isEmpty());

あなたの問題に関して、それは単にHamcrestからis()メソッドを静的にインポートするのを忘れたという事実によって引き起こされます。

import static org.hamcrest.CoreMatchers.is;
61
JB Nizet

これは非常に読みやすく、Hamcrestを使用しています。まさにあなたが求めたもの;)コードがコメントのように読めるときは常に素晴らしい。

assertThat(myList, is(empty()));
assertThat(myList, is(not(empty())));

isを静的インポートとしてIDEに追加できます。これは、EclipseとIntelliJがクラスパス上にある場合でも提案に苦労していることを知っています。


IntelliJ

Settings -> Code Style -> Java -> Imports 

日食

Prefs -> Java -> Editor -> Content Assist -> Favourites 

インポート自体はimport static org.hamcrest.CoreMatchers.is;です

10
LazerBanana

私も似たようなものを探していましたが、最も簡単な回避策は

Assert.AreEqual(result.Count, 0);

コレクションにレコードがない場合。

0
Sahil Mehtani