assert that a list is not empty in JUnit

JunitJunit4

Junit Problem Overview


I want to assert that a list is not empty in JUnit 4, when I googled about it I found this post : https://stackoverflow.com/q/3631110/4991526 which was using Hamcrest.

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

which gives me this error :

> The method is(boolean) is undefined for the type > MaintenanceDaoImplTest

how can I do that without using Hamcrest.

Junit Solutions


Solution 1 - Junit

You can simply use

assertFalse(result.isEmpty());

Regarding your problem, it's simply caused by the fact that you forgot to statically import the is() method from Hamcrest;

import static org.hamcrest.CoreMatchers.is;

Solution 2 - Junit

This reads quite nicely and uses Hamcrest. Exactly what you asked for ;) Always nice when the code reads like a comment.

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

You can add is as a static import to your IDE as I know that eclipse and IntelliJ is struggling with suggesting it even when it is on the classpath.


IntelliJ

Settings -> Code Style -> Java -> Imports 

Eclipse

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

And the import itself is import static org.hamcrest.CoreMatchers.is;

Solution 3 - Junit

assertEquals(Collections.Empty_List,Collections.emptyList())

Try this.

Solution 4 - Junit

You can check if your list is not equal an Empty List (Collections.EMPTY_LIST), try this:

Assertions.assertNotEquals(Collections.EMPTY_LIST, yourList);

Solution 5 - Junit

I like to use

Assert.assertEquals(List.of(), result)

That way, you get a really good error message if the list isn't empty. E.g.

java.lang.AssertionError: 
Expected :[]
Actual   :[something unexpected]

Solution 6 - Junit

I was also looking for something similar, but the easiest work around can be

Assert.AreEqual(result.Count, 0);

When the collection has no records.

Solution 7 - Junit

You can change "is" to "equalTo": assertThat(result.isEmpty(), equalTo(false));

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRenaud is Not Bill GatesView Question on Stackoverflow
Solution 1 - JunitJB NizetView Answer on Stackoverflow
Solution 2 - JunitLazerBananaView Answer on Stackoverflow
Solution 3 - JunitArindamView Answer on Stackoverflow
Solution 4 - JunitRicardo NascimentoView Answer on Stackoverflow
Solution 5 - JunitHarryView Answer on Stackoverflow
Solution 6 - JunitSahil MehtaniView Answer on Stackoverflow
Solution 7 - JunitRuslan OmelchenkoView Answer on Stackoverflow