2
此问题与我之前的问题JUnit assertions within in Java 8 stream有关。JUnit在Stream中测试属性值
如果我有3个对象,如何验证流中对象属性的值?我之前的问题回答了如何测试它们的存在,但我现在需要测试每个属性的值。有人可以给我一个代码片段吗?
此问题与我之前的问题JUnit assertions within in Java 8 stream有关。JUnit在Stream中测试属性值
如果我有3个对象,如何验证流中对象属性的值?我之前的问题回答了如何测试它们的存在,但我现在需要测试每个属性的值。有人可以给我一个代码片段吗?
您可以按期望值筛选属性并对结果条目进行计数。这个数字必须等于原始大小。
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();
我需要做的这对每个单独的属性,对不对?我想要一种方法来在一个语句中测试一个对象。那可能吗? – user1660256
不,你不知道。不要为每个你想要检查的房产进行“地图”和过滤, G。 '.filter(o - > expectedIds.contains(o.getId()。intValue()))' –
提示:我不会检查一个流中的所有属性来验证**哪个**属性是错误的 –