我的Assert是这样的:
assertThat(obj.getTotal()).isEqualTo(BigDecimal.valueOf(4))
我要走了
期望:<4.00>等于:<4>
所以我试着
assertThat(obj.getTotal()).isEqualTo(BigDecimal.valueOf(4.00))
期望:<4.00>等于:<4.0>
我找到了一个解决方法,可以设置期望值的范围 4
至 4.00
,但我不得不在测试中对所有bigdecimal变量都这样做,这似乎相当恼火。有没有一个更好的方式,从资产,我不知道?
2条答案
按热度按时间7xllpg7q1#
你可以用
isEqualByComparingTo
或者usingComparator
那个用途BigDecimal.compareTo
它比较实际的数值。这个equals
assertj使用的默认方法根据javadoc执行以下操作:与compareto不同,此方法仅当两个bigdecimal对象的值和比例相等时才将其视为相等(因此,使用此方法进行比较时,2.0不等于2.00)。
所以你可以:
或者简单地说:
pw136qt22#
尝试
java.math.BigDecimal.stripTrailingZeros()
方法,如下所示: