断言JUnit中的列表不是空的

断言JUnit中的列表不是空的,junit,junit4,Junit,Junit4,我想断言JUnit4中的列表不是空的,当我在谷歌上搜索它时,我发现了这篇文章:它使用的是Hamcrest assertThat(result.isEmpty(), is(false)); 这给了我一个错误: 该类型的方法为(布尔)未定义 维护测试 如果不使用Hamcrest,我怎么能做到这一点呢 assertFalse(result.isEmpty()); 关于您的问题,这只是因为您忘记从Hamcrest静态导入is()方法 import static org.hamcrest.CoreMa

我想断言JUnit4中的列表不是空的,当我在谷歌上搜索它时,我发现了这篇文章:它使用的是Hamcrest

assertThat(result.isEmpty(), is(false));
这给了我一个错误:

该类型的方法为(布尔)未定义 维护测试

如果不使用Hamcrest,我怎么能做到这一点呢

assertFalse(result.isEmpty());
关于您的问题,这只是因为您忘记从Hamcrest静态导入
is()
方法

import static org.hamcrest.CoreMatchers.is;

这本书读起来很好,使用了Hamcrest。正是你要求的;) 当代码读起来像注释时总是很好的

assertThat(myList, is(empty()));
assertThat(myList, is(not(empty())));
您可以将
is
作为静态导入添加到您的IDE中,因为我知道eclipse和IntelliJ即使在类路径上也在努力建议它。


IntelliJ 日食 而进口本身就是
import static org.hamcrest.CoreMatchers.is

我也在寻找类似的东西,但最简单的解决方法是

Assert.AreEqual(result.Count, 0);
当集合没有记录时。

您可以将“is”更改为“equalTo”: 断言(result.isEmpty(),等于(false))

我喜欢使用

Assert.assertEquals(List.of(),result)
这样,如果列表不是空的,就会得到一条非常好的错误消息。例如

java.lang.AssertionError: 
Expected :[]
Actual   :[something unexpected]
assertEquals(Collections.Empty\u列表,Collections.emptyList())


试试这个。

您可以检查您的列表是否不等于空列表(
Collections.Empty\u list
),试试这个:

Assertions.assertNotEquals(Collections.EMPTY_LIST, yourList);

另请参见此处仅供参考:
assertThat(items,IsCollectionWithSize.hasSize(大于(1))
检查集合的大小。但不幸的是,如果失败,它不会打印集合中的项目:(现在更好的方法是
assertThat(myList,is(not(empty()))
@GiulioCaccin提到导入类会很有帮助。我没有提到它,因为LazerBanana的正确答案就在第页的这里。您使用什么导入?它没有使用Hamcrest吗?关于
empty()
我还没有解决,它也是用户定义的还是需要静态导入?@basheer:import static org.hamcrest.Matchers.empty;
java.lang.AssertionError: 
Expected :[]
Actual   :[something unexpected]
Assertions.assertNotEquals(Collections.EMPTY_LIST, yourList);