如何断言集合中的所有元素都具有相同的属性?

时间:2016-10-18 10:18:13

标签: java testing junit hamcrest

我有一组对象(让我们说Car s)。每辆车都有Company类型的属性,可以通过id标识。

现在我想断言我的系列中的所有车都属于同一家公司,即每辆车的公司都与其他公司相同。

请注意,在我的测试中我事先并不知道公司ID的价值。我并不关心价值,唯一重要的是所有汽车都是如此。

我会想象:

assertThat(allCars, Matchers.equalAmongAll(hasProperty("company", hasProperty("id"))));

编辑:只有Java 7可用,不能使用Java 8表达式

1 个答案:

答案 0 :(得分:1)

我不确定我理解你,也许是这样的:

int id = allCars.get(0).getId();
List<Car> list = allCars.stream().filter(c -> c.getId() == id).collect(Collectors.toList());
assertEquals(list.size(), allCars.size());