jUnit测试两个布尔数组

Mik*_*lly 7 java junit

我刚刚注意到jUnit 4.8.1不支持测试两个布尔数组的相等性.还有很多其他assertArrayEquals,但没有一个可以接受两个布尔数组.

有没有正确的方法来做到这一点?我目前的想法是,我必须迭代一个数组并使用类似的东西

Assert.assertTrue(arrayOne[i] == arrayTwo[i]);
Run Code Online (Sandbox Code Playgroud)

有更清洁的方法吗?

Mak*_*oto 9

您可以使用Arrays.equals()比较两个数组,然后断言它们是等效的.

Assert.assertTrue(Arrays.equals(arrayOne, arrayTwo));
Run Code Online (Sandbox Code Playgroud)

Arrays.equals() 检查数组中的长度和每个元素,因此您不必担心迭代每个数组.

还有Assert.assertArrayEquals,它将为您提供阵列不同的确切位置.

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

@Test
public void doArrayTest() {
    int[] foo = {1, 2, 3};
    int[] bar = {4, 5, 6};
    assertArrayEquals(foo, bar);
}
Run Code Online (Sandbox Code Playgroud)

结果将是:

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

Expected :1
Actual   :4
Run Code Online (Sandbox Code Playgroud)