对计划程序进行单元测试有哪些策略?


问题内容

这篇文章的开头是“在单元测试多线程代码中有哪些常见模式?”,但我在SO上发现了其他
一些讨论通常都同意“这很困难(TM)”和“它取决于(TM)”。因此,我认为缩小问题范围将更为有用。

背景
:我们正在实现一个简单的调度程序,该调度程序为您提供了一种在启动和停止作业时注册回调的方法,当然还可以配置调度频率。当前,我们正在围绕java.util.Timer进行轻量级包装。

方面

  • 我还没有找到一种仅依靠公共接口(例如addJob(jobSchedule, jobArgs,jobListener)removeJob(jobId))来测试此调度程序的方法。

  • 我如何计时根据指定的时间表调用作业的事实?


问题答案:

您可以使用一个 记录器对象 来记录调度程序的每个单元测试中的顺序,时序和其他有用的东西。测试很简单:

  1. 创建一个 记录器对象
  2. 配置时间表
  3. 执行单元测试
  4. 检查记录器对象是否与时间表“兼容”