Sam*_*Sam 35 java arrays junit
我正在尝试编写一个测试用例,其中我的场景是两个字节数组应该 不相等.
我可以用junit做这个吗?
或者我必须使用像Hamcrest这样的外部东西?我无法更改此答案中的代码来完成工作
请举例.
Sea*_*oyd 47
我更喜欢这样做Hamcrest方式,它更具表现力:
Assert.assertThat(array1, IsNot.not(IsEqual.equalTo(array2)));
Run Code Online (Sandbox Code Playgroud)
或者带静态导入的简短版本:
assertThat(array1, not(equalTo(array2)));
Run Code Online (Sandbox Code Playgroud)
(IsEqual幸运的是,匹配器非常聪明,可以理解数组.)
请注意,Hamcrest的受限版本是JUnit 4.x发行版的一部分,因此您无需添加外部库.
Pet*_*rey 43
您可以使用
assertFalse(Arrays.equals(array1, array2));
Run Code Online (Sandbox Code Playgroud)
如果你想检查它们是否相等,我会使用以下代码.
assertEquals(Arrays.toString(array1), Arrays.toString(array2));
Run Code Online (Sandbox Code Playgroud)
因为这会产生可读的输出,而不仅仅是失败.
pho*_*ser 13
较新版本的JUnit提供org.junit.Assert.assertArrayEquals(byte[], byte[]),其他数组类型的重载.失败显示第一个具有不匹配的索引以及该索引处的不同元素.
我也很享受assertEquals(Arrays.asList(expected), Arrays.asList(actual)).上面提到的Hamcrest动力演绎可能是最好的.