在 Predicate 中使用 isEqualByComparingTo
Use isEqualByComparingTo in Predicate
正常使用像 isEqualByComparingTo
:
这样的漂亮的 assertj-matchers
BigDecimal number = ...
assertThat(number).isEqualByComparingTo(BigDecimal.valueOf(...));
但是我有一个 BigDecimals 列表,我想通过使用 assertj 的匹配器来检查列表中的每个元素是否相等,例如 isEqualByComparingTo
:
List<BigDecimal> numbers = ...
assertThat(numbers).allMatch( ???.isEqualByComparingTo(BigDecimal.valueOf(...) )
相反,我不得不使用乏味的低级比较:
List<BigDecimal> numbers = ...
assertThat(numbers).allMatch( number -> number.compareTo(...) == 0 )
是否有可能在谓词中使用漂亮的匹配器?
尝试 usingElementComparator
with BigDecimalComparator
(或编写您自己的 BigDecimalComparator)。
示例:
List<BigDecimal> numbers = list(new BigDecimal("1.00"), new BigDecimal("2.00"));
assertThat(numbers).usingElementComparator(new BigDecimalComparator())
.contains(new BigDecimal("1.0"), new BigDecimal("2"));
正常使用像 isEqualByComparingTo
:
BigDecimal number = ...
assertThat(number).isEqualByComparingTo(BigDecimal.valueOf(...));
但是我有一个 BigDecimals 列表,我想通过使用 assertj 的匹配器来检查列表中的每个元素是否相等,例如 isEqualByComparingTo
:
List<BigDecimal> numbers = ...
assertThat(numbers).allMatch( ???.isEqualByComparingTo(BigDecimal.valueOf(...) )
相反,我不得不使用乏味的低级比较:
List<BigDecimal> numbers = ...
assertThat(numbers).allMatch( number -> number.compareTo(...) == 0 )
是否有可能在谓词中使用漂亮的匹配器?
尝试 usingElementComparator
with BigDecimalComparator
(或编写您自己的 BigDecimalComparator)。
示例:
List<BigDecimal> numbers = list(new BigDecimal("1.00"), new BigDecimal("2.00"));
assertThat(numbers).usingElementComparator(new BigDecimalComparator())
.contains(new BigDecimal("1.0"), new BigDecimal("2"));