我需要创建一个唯一的 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。这很36 byte
长并且具有xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx
x 是任何hexadecimal
数字且 y 是 8、9、A 或 B 之一的形式。例如f47ac10b-58cc-4372-a567-0e02b2c3d479.