首页 > 解决方案 > 以 Epsilon 形式表示的 Junits 中的实际值

问题描述

在我拥有的一个junit中,我得到以下失败原因

java.lang.AssertionError: expected:<1200000> but was:<1.2E+6>

这本质上是相同的值。当我从邮递员那里打到时,实际的 json 响应是 1200000,而我用来获取 1200000 字段的方法的返回类型是 BigDecimal。

不知道如何实际修复这个 1.2E+6。

标签: javajunitjava.lang

解决方案


您很可能尝试将 BigDecimal 与另一种类型进行比较,但比较失败。请检查 javadoc:https://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#equals(java.lang.Object)

“当且仅当指定的 Object 是一个 BigDecimal,其值和比例等于这个 BigDecimal 的值时才为真。”

如果 2 个数字不是 BigDecimal,您将得到错误。如果 2 是 Bigdecimal 但比例不同,则应使用 compareTo。


推荐阅读