生成16个字节的uniqueId(或UUID)并对其进行测试

时间:2012-06-27 06:14:26

标签: java uuid uniqueidentifier

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

我遇到java.util.UUID并尝试使用UUID.randomUUID()。但是如何确保生成的UUID长16个字节?

在我的JUnit中,我尝试使用

进行测试
Assert.assertTrue(stringUUID.getBytes().length() ==16) 

这是对的吗?

2 个答案:

答案 0 :(得分:4)

您不需要对JDK类进行单元测试(除非您正在为JDK编写代码)。 java.util.UUID将创建正确的16字节唯一ID。请专注于您自己代码的测试工作。

对于更容易理解的测试用例输出(如果断言失败),最好使用assertEquals:

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

然而,这将失败,因为string representation超过16个字节。什么是十六进制编码和连字符以及所有。

答案 1 :(得分:3)

UUID.randomUUID()方法生成type-4 UUID。这是36 byte长并且格式为xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx,其中x是任意hexadecimal数字,y是8,9,A或B中的一个,例如f47ac10b-58cc-4372-a567-0e02b2c3d479.

相关问题