我需要创建一个唯一的ID。它必须是16个字节长。
我遇到java.util.UUID并尝试使用UUID.randomUUID()。但是如何确保生成的UUID长16个字节?
在我的JUnit中,我尝试使用
进行测试Assert.assertTrue(stringUUID.getBytes().length() ==16)
这是对的吗?
答案 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.