수학을하지 않으면 정확한 부동 소수점 값을 주장하는 데 아무런 문제가 없습니다. 예를 들어 :
public interface Foo {
double getDefaultValue();
}
public class FooImpl implements Foo {
public double getDefaultValue() { return Double.MIN_VALUE; }
}
이 경우 실제로 MIN_VALUE
0이 아니 -MIN_VALUE
거나 MIN_NORMAL
매우 작은 값 인지 확인하고 싶습니다 . 당신은 말할 수 있습니다
double defaultValue = new FooImpl().getDefaultValue();
assertEquals(Double.MIN_VALUE, defaultValue);
그러나 이것은 당신에게 사용 중단 경고를 줄 것입니다. 이를 피하기 위해 assertEquals(Object, Object)
대신 전화 를 걸 수 있습니다 .
// really you just need one cast because of autoboxing, but let's be clear
assertEquals((Object)Double.MIN_VALUE, (Object)defaultValue);
그리고 당신이 정말로 영리하게 보이고 싶다면 :
assertEquals(
Double.doubleToLongBits(Double.MIN_VALUE),
Double.doubleToLongBits(defaultValue)
);
또는 Hamcrest 유창한 스타일 어설 션을 사용할 수 있습니다.
// equivalent to assertEquals((Object)Double.MIN_VALUE, (Object)defaultValue);
assertThat(defaultValue, is(Double.MIN_VALUE));
값이있는 거 확인이되면 않는 몇 가지 계산을 수행에서 온,하지만, 엡실론를 사용합니다.