es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Prueba unitaria de dos objetos que devuelven una matriz (Java)

Estoy intentando crear una prueba JUnit con dos objetos que devuelven una matriz 2D, aquí está mi constructor:

public Matrix(int[][] array) {
    this.matrix = Arrays.copyOf(array, array.length); } 

Aquí está mi código de prueba:

@Test
void addValue() {
    int[][] array = {{1, 2, 3}, {1, 2, 3}};
    int[][] newArray = {{1, 2, 3, 4}, {1, 2, 3}};

    Matrix result = new Matrix(array);
    Matrix expected = new Matrix(newArray);

    assertEquals(expected,result.addValue(0,4));

}

El método addValueInSpecificLine es una función que creé, en este caso, agrega el valor 4 en la línea 0.

Aquí está el error de mi prueba:


org.opentest4j.AssertionFailedError: expected: Matrix@3c0a50da<Array{array=[[1, 2, 3, 4], [1, 2, 3]]}> but was: Matrix@646be2c3<Array{array=[[1, 2, 3, 4], [1, 2, 3]]}>
Expected :Array{array=[[1, 2, 3, 4], [1, 2, 3]]}
Actual :Array{array=[[1, 2, 3, 4], [1, 2, 3]]}

Lo esperado es lo mismo que lo actual, pero por alguna razón la prueba es falsa.

¿Algún consejo?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema con la implementación de su clase Matrix y la función addValueInSpecificLine. El mensaje de error indica que los valores esperados y reales son iguales, pero la prueba sigue fallando.

    Una cosa que puede intentar es imprimir los valores de las matrices esperadas y resultantes utilizando Arrays.deepToString () para ver si hay diferencias inesperadas entre las dos. Por ejemplo, agregue las siguientes líneas de código antes de la afirmación:

    System.out.println("Esperado: " + Arrays.deepToString(expected.matrix));
    System.out.println("Resultado: " + Arrays.deepToString(result.matrix));
    

    Si hay alguna diferencia inesperada, eso podría ayudar a señalar dónde se encuentra el problema.

    Otra cosa a considerar es si puede haber problemas con la implementación de la función addValueInSpecificLine. Es posible que desee agregar pruebas adicionales para comprobar si la función está funcionando correctamente en diferentes escenarios.

    En general, es difícil decir exactamente cuál puede ser el problema sin más información, pero verificar la implementación de las funciones Matrix y addValueInSpecificLine, así como agregar pruebas adicionales, puede ser útil para señalar el problema.

Comments are closed.