我想测试一段时间,比如5秒钟,然后在没有错误的情况下通过测试。这可能带注释吗?是否可以使用@Test(uptime=5000)
之类的东西?
答案 0 :(得分:7)
问题修改后的修改后的答案
从根本上说,感觉你在这里测试的是错误的东西 - 似乎很奇怪“没有任何事情发生”是成功的标志。
如果你想证明你的算法可以运行一段时间而不会失败,我实际上会提取出一个循环,然后写一个类似的测试:
@Test
public void fineForFiveSeconds() {
long start = System.nanoTime();
long end = start + TimeUnit.SECONDS.toNanos(5);
while (System.nanoTime < end()) {
test.executeOneIteration();
}
}
这样你就没有一个单独的线程,它必须杀死工作代码等。
原始回答
这个答案是在之前写的,问题表明超时是成功的标志,而不是失败。
我认为您只需要@Test
注释中的timeout
属性:
@Test(timeout = 5000)
带文档:
(可选)指定超时(以毫秒为单位),以使测试方法在超过该毫秒数时失败。