对计划程序进行单元测试有哪些策略?
问题内容:
这篇文章的开头是“在单元测试多线程代码中有哪些常见模式?”,但我在SO上发现了其他
一些讨论通常都同意“这很困难(TM)”和“它取决于(TM)”。因此,我认为缩小问题范围将更为有用。
背景
:我们正在实现一个简单的调度程序,该调度程序为您提供了一种在启动和停止作业时注册回调的方法,当然还可以配置调度频率。当前,我们正在围绕java.util.Timer进行轻量级包装。
方面 :
-
我还没有找到一种仅依靠公共接口(例如
addJob(jobSchedule, jobArgs,jobListener)
,removeJob(jobId)
)来测试此调度程序的方法。 -
我如何计时根据指定的时间表调用作业的事实?
问题答案:
您可以使用一个 记录器对象 来记录调度程序的每个单元测试中的顺序,时序和其他有用的东西。测试很简单:
- 创建一个 记录器对象
- 配置时间表
- 执行单元测试
- 检查记录器对象是否与时间表“兼容”