首页 > 解决方案 > 如何使用 AssertJ 从列表中映射减少值并断言结果

问题描述

我有一个问题,是否可以对列表进行 map-reduce 以断言 AssertJ 框架内的缩减值。

一个普通的非 AssertJ 方法将如下所示

List<Total> totals = ...
Integer sum = totals.stream().map(Total::amount).reduce(0, Integer::sum);
assertThat(sum).isEqualTo(9999);

想知道是否有可能做类似的事情......

assertThat(totals)
  .hasSize(5)
  .extracting(Total::amount)
  .reduce(getSum) // <= What would I put here since reduce doesn't exist that I can tell
  .isEqualTo(9999);

如果答案是你不能这样做,那也没关系。我只是想知道框架是否支持它作为思想实验,并且我在 API 中找不到任何东西。

标签: javajunit

解决方案


推荐阅读