【发布时间】:2016-12-11 20:46:17
【问题描述】:
我编写了一个简单的算法,将字符串格式的二进制数转换为字节数组。我用int计算8位的数值,然后转换成字节。
当我在 JUnit 中运行以下代码时出现问题:
assertEquals( new byte[] {(byte) 0} , Set1.binToBytes("00000000") );
所以一个有 8 个零的字符串应该产生一个 0 字节。它以 AssertionError 结束。在调试过程中跟踪变量时,我发现了以下内容:
预期:[0] 实际:[0]
这是 JUnit 中的错误,还是我搞砸了什么?以上两种是不同的类型吗?
运行整个JUnit测试后,发现如下错误:
java.lang.AssertionError: expected:<[B@65e2dbf3> but was:<[B@4f970963>
【问题讨论】:
-
Equals(和 assertEquals)不检查数组是否相等:
arr1.equals(arr2)只有当arr1 == arr2时才为真。
标签: java junit casting byte assertion