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

时间:2011-08-11 13:57:10

标签: javascript jquery testing asynchronous qunit

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

这是我难倒的地方:除了上面提到的所需功能外,我还必须测试用户指定的值是否实际用于setTimeout。我将如何从QUnit角度进行此操作?

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

1 个答案:

答案 0 :(得分:0)

考虑以一种方式重构代码,让你覆盖在测试中启动超时的方法,允许你验证是否传递了正确的值,而不实际启动超时。

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