在Qt应用程序中,是否有任何技术可以快速推进测试时间?

在Qt应用程序中,是否有任何技术可以快速推进测试时间?,qt,unit-testing,Qt,Unit Testing,使用Qt开发一个在不同地方涉及基于时间的状态转换的系统。我试图在进行时提供全面的单元测试覆盖范围,显然,试图对发生在多个秒甚至分钟周期内的状态转换提供彻底的自动化测试是非常不理想的 在过去,当处理基于“裸机”C和RTOS的嵌入式系统的相同挑战时,我成功地实现了钩子函数,这些函数允许快速转发/加速测试时间,我想知道是否有人遇到过在Qt中实现相同功能的技术(开发人员API、垫片库等) 所讨论的状态转换可能由QTimer超时、QDateTime/QeReleasedTimer/QDeadlineTim

使用Qt开发一个在不同地方涉及基于时间的状态转换的系统。我试图在进行时提供全面的单元测试覆盖范围,显然,试图对发生在多个秒甚至分钟周期内的状态转换提供彻底的自动化测试是非常不理想的

在过去,当处理基于“裸机”C和RTOS的嵌入式系统的相同挑战时,我成功地实现了钩子函数,这些函数允许快速转发/加速测试时间,我想知道是否有人遇到过在Qt中实现相同功能的技术(开发人员API、垫片库等)

所讨论的状态转换可能由QTimer超时、QDateTime/QeReleasedTimer/QDeadlineTimer时间戳检查和QThread Sleep的组合触发,因此仅仅伪造QTimer::timeout信号是不够的

不需要关于可模仿计时器的依赖注入、允许可配置超时的接口、或在整个Qt库时间相关类上挂起有利于facade/Decorator的自定义测试的常规建议。我很清楚我可以如何做到这一点,我希望我不必

欺骗


thx

我不喜欢QT框架,所以这里有一个想法:在Java中,解决此类问题的一种方法是依赖“同线程服务”(请参阅)这里的要点是:为了测试的目的,你把一个多线程的问题…变成一个单线程的问题。然后你的单线程可以先设置一些条件,然后立即得到处理。