Java jUnit测试两个布尔数组

Java jUnit测试两个布尔数组,java,junit,Java,Junit,我刚刚注意到JUnit4.8.1不支持测试两个布尔数组的相等性。有很多其他assertArrayEquals,但没有一个可以包含在两个布尔数组中 有没有合适的方法?我目前的想法是,我必须迭代一个数组并使用 Assert.assertTrue(arrayOne[i] == arrayTwo[i]); 有没有更干净的方法可以做到这一点?您可以使用它来比较这两个数组,然后断言它们是等效的 Assert.assertTrue(Arrays.equals(arrayOne, arrayTwo)); A

我刚刚注意到JUnit4.8.1不支持测试两个布尔数组的相等性。有很多其他assertArrayEquals,但没有一个可以包含在两个布尔数组中

有没有合适的方法?我目前的想法是,我必须迭代一个数组并使用

Assert.assertTrue(arrayOne[i] == arrayTwo[i]);
有没有更干净的方法可以做到这一点?

您可以使用它来比较这两个数组,然后断言它们是等效的

Assert.assertTrue(Arrays.equals(arrayOne, arrayTwo));
Arrays.equals()
检查数组的长度和每个元素,这样就不必担心遍历每个数组了

还有一个,它将为您提供阵列不同的确切位置

示例:对于这样编写的测试:

@Test
public void doArrayTest() {
    int[] foo = {1, 2, 3};
    int[] bar = {4, 5, 6};
    assertArrayEquals(foo, bar);
}
结果将是:

arrays first differed at element [0]; expected:<1> but was:<4>

Expected :1
Actual   :4
数组首先在元素[0]处不同;预期:但是:
预期:1
实际:4

该功能已添加到2014年12月发布的JUnit 4.12中

assertArrayEquals(boolean[] expecteds, boolean[] actuals)
assertArrayEquals(String message, boolean[] expecteds, boolean[] actuals)
仅供参考:这是包含提交的PR:
assertTrue(Arrays.equals(array1,array2))问题在于,如果阵列不同,您的诊断无法告诉您出了什么问题,您需要做额外的工作来找出它们不同的原因