junit 数组不等于测试

2022-09-01 00:19:05

我正在尝试编写一个测试用例,其中我的方案是两个字节数组应该不相等

我可以用 junit 做到这一点吗?

还是我必须使用像Hamcrest这样的外部产品?我无法更改此答案中的代码来完成这项工作

请提供样品。


答案 1

您可以使用

assertFalse(Arrays.equals(array1, array2));

如果你想检查它们是否相等,我会使用以下代替。

assertEquals(Arrays.toString(array1), Arrays.toString(array2));

因为这会产生一个可读的输出,说明什么是不同的,而不仅仅是失败。


答案 2

我更喜欢用Hamcrest的方式这样做,这更具表现力:

Assert.assertThat(array1, IsNot.not(IsEqual.equalTo(array2)));

或者带有静态导入的简短版本:

assertThat(array1, not(equalTo(array2)));

(幸运的是,匹配器足够聪明,可以理解数组。IsEqual

请注意,Hamcrest 的有限版本是 JUnit 4.x 发行版的一部分,因此您无需添加外部库。