一尘不染

JUnit使用BigDecimal声明

java

我想在两个小数点后两位之间使用断言,我使用这个:

BigDecimal bd1 = new BigDecimal (1000);
BigDecimal bd2 = new BigDecimal (1000);
org.junit.Assert.assertSame (bd1,bd2);

但是JUnit日志显示:

expected <1000> was not: <1000>

阅读 330

收藏
2020-12-03

共1个答案

一尘不染

assertSame测试两个对象是相同的对象,即它们是==

断言两个对象引用相同的对象。如果它们不相同,AssertionError则会抛出一个没有消息的消息。

在您的情况下,由于bd1bd2都是new BigDecimal,所以对象不相同,因此是例外。

您要使用assertEquals,测试两个对象是否相等,即.equals

断言两个对象相等。如果不是,AssertionError则会抛出一个不带消息的消息。如果期望和实际null相等,则认为它们相等。

BigDecimal bd1 = new BigDecimal (1000);
BigDecimal bd2 = new BigDecimal (1000);
org.junit.Assert.assertEquals(bd1,bd2);
2020-12-03