java测试:加快测试超时的时间?

luc*_*uca 6 java testing junit junit4

我有一个应用程序管理游戏中的转弯,它相当复杂,它有很多计时器产生超时...因为它们很多互操作,所以很难确定一切正常(并保持正常工作).

我想测试它,但某些超时是几分钟,完全测试它需要至少一个小时!

有没有办法伪造计时器的加速时间?或者我应该按比例缩小所有超时,测试它们,然后每次再缩放它们?

谢谢!

unh*_*ler 3

实现此目的的一种方法是创建您自己的界面,为Timer. 然后,您可以在代码中的任何地方针对接口进行编程。之后,您将实现该接口的两个实现。第一个是连接到您当前拥有的真实对象的预期实现Timer。另一种是可用于测试的。在此实现中,您模拟了 a 的功能Timer,但您可以完全控制事件的触发方式以及事件需要多长时间。您可以按照@aioobe的建议调整持续时间,或者您可以创建一个可以快速触发事件的后备队列,这样就不会浪费时间。

关键是您不必更改实际代码并使用依赖项注入来进行测试所需的更改。