我刚刚注意到jUnit 4.8.1不支持测试两个布尔数组的相等性.还有很多其他assertArrayEquals,但没有一个可以接受两个布尔数组.
有没有正确的方法来做到这一点?我目前的想法是,我必须迭代一个数组并使用类似的东西
Assert.assertTrue(arrayOne[i] == arrayTwo[i]);
Run Code Online (Sandbox Code Playgroud)
有更清洁的方法吗?
您可以使用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)
| 归档时间: |
|
| 查看次数: |
1998 次 |
| 最近记录: |