断言列表恰好包含一个满足条件的元素
Assert list contains exactly one element satisfying condition
在我的 JUnit 测试中,我想断言列表只包含一个满足给定条件的元素(列表中可以有很多元素,但只有一个元素应该满足条件)。我写了下面的代码,但我想知道是否可以去掉 "new Condition<>" 部分并使用 "pure" 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");
在我的 JUnit 测试中,我想断言列表只包含一个满足给定条件的元素(列表中可以有很多元素,但只有一个元素应该满足条件)。我写了下面的代码,但我想知道是否可以去掉 "new Condition<>" 部分并使用 "pure" 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");