2009-10-19 2 views
6

Junit4에는 double이 아닌 모든 프리미티브에 대해 Assert.assertArrayEquals() 메서드가있는 것처럼 보입니다.junit4에 double [] s에 대한 Assert.assertArrayEquals()가없는 이유는 무엇입니까?

Assert.assertArrayEquals(int[] expected, int[] actual) 

Assert.assertArrayEquals(char[] expected, char[] actual) 

아니지만

Assert.assertArrayEquals(double[] expected, double[] actual, double eps) 

또는

Assert.assertArrayEquals(double[] expected, double[] actual, double[] eps) 

(후자의 두 배의 가변 범위를 고려하여). 왜 그런 기능을 쓰지 말아야하는지 근본적인 이유가 있습니까?

답변

6

온라인 javadoc here에는 문서화되어 있지 않지만이 방법은 4.7에서 제공됩니다. javadoc/버전에서는 확실히 감시했지만, 지금은 있습니다.

7

이 메소드는 JUnit 4.6에서 추가 된 것처럼 보이지만, 4.5 및 이전 버전에서는 누락되었습니다. 나는 새로운 JUnit 버전으로 업그레이드하는 데 어떤 문제도 기대하지 않을 것이다.

1

JUnit 버그 데이터베이스에 따르면, 그들은 "working on it"입니다. 다른 답변에 따르면 버그 데이터베이스가 현실과 완전히 일치하지 않는 것처럼 들립니다.

0

은 사용

AssertTrue(**message**, Arrays.equals(**expected**,**result**) 
예상에 대해 당신은 테스트하여 결과 값을 반올림이 필요할 수 있습니다

:

public double roundTo2Decimals(double val) { 
    DecimalFormat df2 = new DecimalFormat("###.####"); 
    return Double.valueOf(df2.format(val)); 
} 

더 많은 정보를 원하시면

에 대한 javdoc를 참조하십시오
관련 문제