生成16字节的唯一标识符(或UUID)并进行测试。

3

我需要创建一个唯一的ID。它必须是16字节长。

我发现了java.util.UUID并尝试使用UUID.randomUUID()。但如何确保生成的UUID长度为16字节?

在我的JUnit测试中,我尝试使用

Assert.assertTrue(stringUUID.getBytes().length() ==16) 

这是否正确?

2个回答

5

除非您正在为JDK编写代码,否则不需要对JDK类进行单元测试。 java.util.UUID将创建正确的16字节唯一ID。把你的测试精力集中在你自己的代码上。

为了更容易理解的测试案例输出(在断言失败的情况下),最好使用assertEquals:

assertEquals("UUID has expected length", 16, stringUUID.getBytes().length());

然而,这样做会失败,因为字符串表示形式超过16个字节。由于十六进制编码、连字符等原因。


让我们来完善一下:如果你恰好“知道”给定类的作用,那么你不需要为 JDK 编写单元测试,否则它可能会派上用场 ;) - Gergely Szilagyi

4

UUID.randomUUID() 方法会生成一个 type-4 UUID。该 UUID 共有 36 个字节,格式为 xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,其中 x 可以是任意的 十六进制数字,而 y 则是 8、9、A 或 B 中的一个。例如: f47ac10b-58cc-4372-a567-0e02b2c3d479。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接