我需要创建一个唯一的ID。它必须是16字节长。
我发现了java.util.UUID并尝试使用UUID.randomUUID()。但如何确保生成的UUID长度为16字节?
在我的JUnit测试中,我尝试使用
Assert.assertTrue(stringUUID.getBytes().length() ==16)
这是否正确?
我需要创建一个唯一的ID。它必须是16字节长。
我发现了java.util.UUID并尝试使用UUID.randomUUID()。但如何确保生成的UUID长度为16字节?
在我的JUnit测试中,我尝试使用
Assert.assertTrue(stringUUID.getBytes().length() ==16)
这是否正确?
除非您正在为JDK编写代码,否则不需要对JDK类进行单元测试。 java.util.UUID
将创建正确的16字节唯一ID。把你的测试精力集中在你自己的代码上。
为了更容易理解的测试案例输出(在断言失败的情况下),最好使用assertEquals:
assertEquals("UUID has expected length", 16, stringUUID.getBytes().length());
然而,这样做会失败,因为字符串表示形式超过16个字节。由于十六进制编码、连字符等原因。
UUID.randomUUID()
方法会生成一个 type-4
UUID。该 UUID 共有 36 个字节
,格式为 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
,其中 x 可以是任意的 十六进制数字
,而 y 则是 8、9、A 或 B 中的一个。例如: f47ac10b-58cc-4372-a567-0e02b2c3d479。