Pregunta

Parece que hay métodos Assert.assertArrayEquals() en Junit4 para todas las primitivas otros del doble, por ejemplo.

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 a la cuenta para los rangos de variables de dobles). ¿Hay una razón fundamental por la que no debería escribir una función de este tipo?

¿Fue útil?

Solución

Se tiene un método de este tipo (en 4.7), aunque no está documentado en el javadoc línea aquí . Sin duda fue un descuido en el javadoc / versión, pero está ahí ahora.

Otros consejos

El método parece haber sido añadido en JUnit 4.6, pero es por alguna razón falta en 4.5 y versiones anteriores. Yo no esperaría ningún problemas para actualizar a una versión más reciente de JUnit.

De acuerdo con la base de datos de errores JUnit, son " de trabajo en él ". Basándonos en las otras respuestas, parece que la base de datos de errores no está completamente en sintonía con la realidad.

El uso justo:

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

Es posible que necesite esta redondear sus valores de resultado de la prueba en contra de lo esperado:

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

javdoc para obtener más información

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top