我有一个Node.js应用程序,我正在快速(ish)开发机器上使用Mocha进行测试。我注意到有时快速CPU会掩盖一些错误。如果测试在CPU较慢的机器上运行,则会出现这些错误。
问题:是否有一种简单的方法可以暂时减慢或模拟CPU处理速度减慢以显示这些错误?或者是全速运行这些测试并仍然发现这种类型的错误?
答案 0 :(得分:1)
这些差异的一个可能原因是某些功能可能需要更长的时间才能运行,具体取决于它们运行的机器,例如,如果它涉及大量计算或从数据库读取。这可能会修改调用回调的顺序。
要解决此问题,您可以通过在测试中使用(例如)Sinon.js来更好地控制运行并行操作序列的顺序:它具有很好的间谍/存根功能,还可以船只fake timers。
通过模拟(存根)需要时间运行的异步函数,您可以删除速度因子(取决于机器)。此外,假定时器允许控制setTimeout
或setInterval