gpt4 book ai didi

Java - 检查单元测试的字符串编码?

转载 作者:行者123 更新时间:2023-12-01 18:32:05 25 4
gpt4 key购买 nike

我有一个单元测试,我试图为 generateKey(int **length**) 方法编写。方法:1. 创建一个字节数组,其大小为输入参数length2. 使用 SecureRandom().nextBytes(randomKey) 方法用随机值填充字节数组3. 将填充有随机值的字节数组编码为UTF-8 String对象4. 为了安全起见,将原始字节数组(称为randomKey)重写为05.返回UTF-8编码的字符串

我已经有一个单元测试来检查用户输入负值(即 -1),以便字节数组会抛出负数组大小异常。

一个好的积极测试用例是检查 UTF-8 编码的字符串是否已成功创建?有没有一种方法可以调用生成的字符串来检查它是否等于“UTF-8”编码?

我无法检查字符串是否等于同一个字符串,因为每次调用字节数组时都会填充随机值......

源代码在这里:

public static String generateKey(int length) {
byte[] randomKey = new byte[length];
new SecureRandom().nextBytes(randomKey);
String key = new String(randomKey, Charset.forName("UTF-8"));//Base64.getEncoder().encodeToString(randomKey);
Arrays.fill(randomKey,(byte) 0);
return key;
}

最佳答案

您可以将 UTF8 字符串转换为字节数组,如下所示

String str = "私の";  // replace this with your generateKey result
byte [] b = str.getBytes();
String newString;
try {
newString = new String (b, "UTF-8");
System.out.println(newString);

System.out.println("size is equal ? " + (str.length() == newString.length()));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

关于Java - 检查单元测试的字符串编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60143440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com