此问题与我之前在JUnit assertions within in Java 8 stream的问题有关。
如果我有3个对象,如何验证流中对象属性的值?我之前的问题回答了如何测试它们的存在,但我现在需要测试每个属性的值。有人可以给我一个代码片段吗?
答案 0 :(得分:0)
您可以按预期值过滤属性并计算结果条目。此数字必须等于原始大小。
List<Integer> expected = Arrays.asList(1, 2, 3);
long count = objects.stream()
.map(MyObject::getId)
.filter(id -> expected.contains(id.intValue()))
.count();
Assert.assertEquals(objects.size(), (int) count);
如果要检查一个流中的所有属性,请执行以下操作:
long count = objects.stream()
.filter(o-> expectedIds.contains(o.getId().intValue()))
.filter(o-> expectedNames.contains(o.getName()))
// and so on
.count();