如何在setTimeout中测试用户指定的时间

How to test for user-specified time in setTimeout

本文关键字:时间 用户 测试 setTimeout      更新时间:2023-09-26

现在我有一个jQuery插件,它添加了一些额外的自定义(关于如何在某些上下文中处理返回数据),并轮询服务器以获取信息和更改。所需的特性之一是允许用户设置轮询间隔。setTimeout(与递归配对)是用于创建常量poll的函数;这也是一个要求。

这就是我被难住的地方:除了上面提到的所需功能外,我还必须测试用户指定的值是否在setTimeout中实际使用。从QUnit的角度来看,我该如何做呢?

我已经考虑过直接使用Date.getTime()计时函数,但目前设置的方式这不是一个选项。

考虑以一种方式重构代码,让您重写在测试中启动超时的方法,允许您验证通过了正确的值,而无需实际启动超时。

如果你真的需要调用setTimeout,可以考虑使用sinon.js来模拟setTimeout本身并控制它的行为。