我想测试一段时间,比如 5 秒,然后如果没有断言错误,则通过测试。这可以通过注释来实现吗?可以使用类似的东西@Test(uptime=5000)
吗?
问问题
2306 次
1 回答
7
编辑问题后的修订答案
从根本上说,感觉就像你在这里测试了错误的东西——“什么都没发生”成为成功的标志似乎很奇怪。
如果你想证明你的算法可以运行一段时间而不会失败,我实际上会提取一个循环,然后编写一个类似的测试:
@Test
public void fineForFiveSeconds() {
long start = System.nanoTime();
long end = start + TimeUnit.SECONDS.toNanos(5);
while (System.nanoTime < end()) {
test.executeOneIteration();
}
}
这样你就没有一个单独的线程来杀死工作代码等。
原始答案
这个答案是在问题表明超时是成功而不是失败的标志之前写的。
我认为您只需要注释timeout
中的属性:@Test
@Test(timeout = 5000)
与文档:
可选地以毫秒为单位指定超时,以在测试方法花费的时间超过该毫秒数时导致失败。
于 2013-03-07T04:02:12.813 回答