断言JUnit

时间:2016-02-17 10:21:24

标签: junit junit4

我想断言JUnit 4中的列表不是空的,当我用Google搜索它时,我发现这篇帖子:Checking that a List is not empty in Hamcrest正在使用Hamcrest。

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

这给了我这个错误:

  

该类型的方法是(boolean)未定义   MaintenanceDaoImplTest

如何在不使用Hamcrest的情况下执行此操作。

7 个答案:

答案 0 :(得分:56)

您只需使用

即可
assertFalse(result.isEmpty());

关于你的问题,这只是因为你忘了静态导入Hamcrest的is()方法;

import static org.hamcrest.CoreMatchers.is;

答案 1 :(得分:7)

这很不错,并使用Hamcrest。正是您要的;) 当代码读起来像注释时,总是很好。

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

您可以将is作为静态导入添加到您的IDE中,因为我知道eclipse和IntelliJ甚至在类路径上都很难建议它。


IntelliJ

Settings -> Code Style -> Java -> Imports 

Eclipse

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

导入本身是     import static org.hamcrest.CoreMatchers.is;

答案 2 :(得分:0)

我喜欢使用

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

这样,如果列表不为空,则会收到一条非常好的错误消息。例如

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

答案 3 :(得分:0)

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

尝试一下。

答案 4 :(得分:0)

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

Assertions.assertNotEquals(Collections.EMPTY_LIST, yourList);

答案 5 :(得分:-1)

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

Assert.AreEqual(result.Count, 0);

当集合没有记录时。

答案 6 :(得分:-2)

您可以将“ is”更改为“ equalTo”: assertThat(result.isEmpty(),equalTo(false));