JUnit:测试对象不在列表中

Ale*_*noy 4 java junit list

在 JUnit 测试中,我需要测试给定对象(不是引用,而是对象的属性)是否不在列表中。最好的方法是什么?

Urs*_*pke 7

假设您使用的是 JUnit 的当前版本,最好的方法是为您类型的对象列表编写您自己的匹配器。

创建一个扩展类org.hamcrest.TypeSafeMatcher并实现给定的方法。为你的类添加一个静态构造函数方法,这样你就可以轻松地在你的assertThat语句中调用它,并交出不应该包含的对象的示例。在该matchesSafely()方法中,确保您的列表不包含与样本属性匹配的对象。

作为替代方案,equals在您的对象上实现,创建一个示例,然后执行 assertThat(yourList,not(hasItem(yourSample)));,其中not是来自 的静态导入CoreMatchershasItem是来自 的静态导入JUnitMatchers

当然,一旦你实现了,equals你就可以简单地assertFalse(yourList.contains(yourSample));