我想断言JUnit 4中的列表不是空的,当我用Google搜索它时,我发现这篇帖子:Checking that a List is not empty in Hamcrest正在使用Hamcrest。
assertThat(result.isEmpty(), is(false));
这给了我这个错误:
该类型的方法是(boolean)未定义 MaintenanceDaoImplTest
如何在不使用Hamcrest
的情况下执行此操作。
答案 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甚至在类路径上都很难建议它。
Settings -> Code Style -> Java -> Imports
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));