在ScheduledExecutorService中测试代码

时间:2016-08-09 18:55:13

标签: testing mocking scheduledexecutorservice

我设置了ScheduledExecutorService,每隔几分钟更新一些对象。

我正在尝试测试更新是否正在发生,当然还有一些边缘情况。

scheduler.scheduleAtFixedRate(()-> {
    //Code to update objects
}, 0, 4, TimeUnit.MINUTES);

我想知道我将如何进行测试,并且可能会嘲笑这个,所以我不必依赖Thread.sleep

1 个答案:

答案 0 :(得分:0)

请注意,scheduleAtFixedRate方法会返回Future,因此您不应使用Thread.sleep,而应使用其中一种Future#get方法。

另一个建议是使用可配置参数替换硬编码时间延迟(4分钟),以便您可以从测试中更改它。