有以下测试:
@Test(timeout = 15)
public void test() throws Exception {
AesCrypt aes = new AesCrypt("password");
String crypted = aes.encrypt("Test string");
Assert.assertEquals("Test string", aes.decrypt(crypted));
}
理论上,执行时间超过15ms应该会失败。同时,如您在屏幕截图中所见,测试运行了 23 毫秒,但仍被视为通过。
为什么这样?

该用法
@Test(timeout = 15)不是线程安全的,该用法可能导致不正确的结果。使用以下代码。结论
这种方法甚至可以让您捕捉到 1 毫秒。
您
jUnit5也可以使用在 IDE 外部运行测试并在运行测试之前进行清理。