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

sri*_*har 3 java uuid uniqueidentifier

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

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

在我的JUnit中,我尝试使用

Assert.assertTrue(stringUUID.getBytes().length() ==16) 
Run Code Online (Sandbox Code Playgroud)

它是否正确?

Thi*_*ilo 5

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

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

assertEquals("UUID has expected length", 16, stringUUID.getBytes().length());
Run Code Online (Sandbox Code Playgroud)

但是,这将失败,因为字符串表示形式的长度超过16个字节。十六进制编码和连字符以及其他所有内容。