[英]Junit: assert that a list contains at least one property that matches some condition
[英]Assert list contains exactly one element satisfying condition
在我的JUnit測試中,我想斷言一個列表僅包含一個滿足給定條件的元素(列表中可以有很多元素,但是只有一個元素可以滿足條件)。 我在下面編寫了代碼,但我想知道是否有可能擺脫“新Condition <>”部分並使用“純” lambda? 還是有其他更優雅的方式來完成我想做的事情?
class Foo {
String u;
Foo(String u) { this.u = u; }
String getIt() { return u; }
}
@Test
public void testIt() {
List<Foo> list = Lists.newArrayList(new Foo("abc"), new Foo("xyz"));
assertThat(list)
.haveExactly(1, new Condition<>(
x -> "xyz".equals(x.getIt()),
"Fail"));
}
這應該可以工作(但是我還沒有測試過):
assertThat(list).extracting(Foo::getIt)
.containsOnlyOnce("xyz");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.