作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
import org.junit.Test;
import java.util.Base64;
import org.junit.Assert.*;
import java.util.Random;
...
@Test
public void testEncoding(){
byte[] data = new byte[32];
new Random().nextBytes(data);
String base64 = Base64.getEncoder().encodeToString(data);
assertEquals(data, Base64.getDecoder().decode(base64));
}
@Test
public void testDecoding(){
String base64 = "ABCDEFGHIJKLRMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/A==";
byte[] data = Base64.getDecoder().decode(base64);
assertEquals(base64, Base64.getEncoder().encodeToString(data));
}
testEncoding 测试失败并出现断言错误:预期:[B@6bf2d08e实际:[B@5eb5c224我不明白为什么。
最佳答案
该缺陷存在于 then 断言中,而不是代码中。
assertEquals将比较内存中字节数组的地址assertArrayEquals 将比较字节数组的内容
关于Java Base64 解码/编码往返不会得出相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37944770/
这个问题在这里已经有了答案: Why are these constructs using pre and post-increment undefined behavior? (14 个答案) 关
我是一名优秀的程序员,十分优秀!