如何使用assertArrayEquals比较两个对象数组

3

我想比较两个对象数组。

但是,由于该方法不接受除String、Integer等之外的其他对象,因此找不到适合该方法的方法。

我已经重写了数组中对象的Equals方法。

但是,我怎样才能将数组传递给该方法呢?

Assert.assertArrayEquals(esperado.getListaEquiposTorneo(), resultado.getListaEquiposTorneo());

//esperado.getListaEquiposTorneo(), resultado.getListaEquiposTorneo())是我创建的两个对象列表

2个回答

2
首先,您应该能够直接使用assertEquals
 Assert.assertEquals(esperado.getListaEquiposTorneo(),
        resultado.getListaEquiposTorneo());

我更喜欢使用 Hamcrest,因为它提供更好的错误信息。
assertThat(actualArray, 
        IsArrayContainingInOrder.arrayContaining(
             expectedArray));

assertThat(resultado.getListaEquiposTorneo(), 
        IsArrayContainingInOrder.arrayContaining(
              esperado.getListaEquiposTorneo()));

按顺序包含数组


0

请参见Tomasz Nurkiewicz 答案

来自Apache Commons的ArrayUtils.isEquals()正好做到了这一点。它还处理多维数组。

您可以对结果使用简单的AssertTrue。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接