[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)) }