我想在 2 两位小数之间使用断言,我使用这个:
BigDecimal bd1 = new BigDecimal (1000);
BigDecimal bd2 = new BigDecimal (1000);
org.junit.Assert.assertSame (bd1,bd2);
但 JUnit 日志显示:
expected <1000> was not: <1000>
原文由 kAnGeL 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想在 2 两位小数之间使用断言,我使用这个:
BigDecimal bd1 = new BigDecimal (1000);
BigDecimal bd2 = new BigDecimal (1000);
org.junit.Assert.assertSame (bd1,bd2);
但 JUnit 日志显示:
expected <1000> was not: <1000>
原文由 kAnGeL 发布,翻译遵循 CC BY-SA 4.0 许可协议
断言两个 BigDecimal 在数学上相等的 官方 junit 解决方案 是使用 hamcrest。
在 java-hamcrest 2.0.0.0 中,我们可以使用以下语法:
// import static org.hamcrest.MatcherAssert.assertThat;
// import org.hamcrest.Matchers;
BigDecimal a = new BigDecimal("100")
BigDecimal b = new BigDecimal("100.00")
assertThat(a, Matchers.comparesEqualTo(b));
原文由 frhack 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
assertSame
测试这两个对象是相同的对象,即它们是==
:在你的情况下,因为
bd1
和bd2
都是新的BigDecimal
,对象不一样,因此异常你想要的是使用
assertEquals
,测试两个对象是否相等,即.equals
: