【问题标题】:Testing code inside a ScheduledExecutorService在 ScheduledExecutorService 中测试代码
【发布时间】:2016-08-09 18:55:13
【问题描述】:

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

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

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

我想知道如何进行测试,也许还可以模拟一下,这样我就不必依赖 Thread.sleep

【问题讨论】:

    标签: testing mocking scheduledexecutorservice


    【解决方案1】:

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

    另一个建议是将硬编码的时间延迟(4 分钟)替换为可配置的参数,以便您可以通过测试对其进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多