2009-10-19 20 views
6

Parece haber Assert.assertArrayEquals() métodos en Junit4 para todas las primitivas que no sean dobles, p. Ej.¿por qué junit4 no tiene Assert.assertArrayEquals() para double [] s?

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

y

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

pero no

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

o

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

(este último para dar cuenta de rangos variables de dobles). ¿Hay alguna razón fundamental por la que no debería escribir tal función?

Respuesta

6

Tiene un método de este tipo (en 4.7), aunque no está documentado en el javadoc en línea here. Sin duda fue un descuido en la versión de javadoc, pero está allí ahora.

7

El método parece haberse agregado en JUnit 4.6, pero por alguna razón falta en 4.5 y versiones anteriores. No esperaría ningún problema al actualizar a una versión más nueva de JUnit.

1

De acuerdo con la base de datos de errores JUnit, son "working on it". Según otras respuestas, parece que la base de datos de errores no está completamente sincronizada con la realidad.

0

sólo tiene que utilizar:

AssertTrue(**message**, Arrays.equals(**expected**,**result**) 

Es posible que necesite esta redondear sus valores de resultado para probar contra esperados:

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

Ver javdoc para obtener más información

Cuestiones relacionadas