[230518] BigDecimal Junit assert
BigDecimal은 equals 테스트를 하기가 애매하다.
@Test
fun mytest() {
assertThat(BigDecimal.valueOf(1.0)).isEqualTo(BigDecimal.valueOf(1))
}
--- output ---
org.opentest4j.AssertionFailedError:
expected: 1
but was: 1.0
Expected :1
Actual :1.0
이렇게 BigDecimal은 테스트할 때 isEqualTo를 사용하는 것은 바람직하지 못하다. 간단한 해킹방법은 compareTo를 이용하는 것이다.
@Test
fun mytest2() {
assertThat(BigDecimal.valueOf(1.0).compareTo(BigDecimal.valueOf(1))).isZero()
}
혹은 isEqualByComparingTo 를 사용하면 깔끔하게 비교가 된다.
@test
fun mytest3() {
assertThat(BigDecimal.valueOf(1.0)).isEqualByComparingTo(BigDecimal.valueOf(1))
}