Junit,测试timer.schedule而不依赖于线程休眠或时间

时间:2016-06-25 23:48:30

标签: java multithreading junit timer

我已经实现了一个方法,在一段时间后,使用TimerTask和Timer.schedule执行一些逻辑。 我想使用Junit来验证这种行为,但是,我想知道是否有更好的方法来测试它,而不使用线程休眠或测量时间。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用"自己的线程" excecutor服务绕过"多线程"并发症。

您可以进一步测试某个A类将任务推送到这样的服务中;您还可以使用单元测试来确保在推送任务时使用的参数是您期望的。

换句话说:你真的不想使用单元测试来证明调度是有效的(假设你没有完全重新发明轮子并且你实现了自己的调度......是你根本不应该做的事情)。您希望使用单元测试来证明您的代码正在使用现有(经过良好测试的)框架以及您希望看到的参数。