使用Qt开发一个在不同地方涉及基于时间的状态转换的系统。我试图在我去的时候进行全面的单元测试覆盖,并且显然试图提供在多秒或甚至分钟时段内发生的状态转换的彻底自动化测试是非常不理想的。
在过去,当处理同样的挑战时,"裸机"基于C和RTOS的嵌入式系统,我已经成功实现了钩子功能,这些功能允许快速转发/加速传递时间用于测试目的,并且我想知道是否有人在Qt中遇到任何实现相同的技术(开发人员API,填充库等)
有问题的状态转换可能是由QTimer超时,QDateTime / QElapsedTimer / QDeadlineTimer时间戳和QThread睡眠的检查组合触发的,所以简单假冒QTimer :: timeout信号是不够的。
实际上并不需要关于依赖注入可模拟计时器的常规建议,允许可配置超时的接口,或者在整个Qt库时间相关类上挂起自定义测试来促进外观/装饰器。我很清楚如何做到这一点,我希望我不必......
处死刑THX