Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在setTimeout中测试用户指定的时间_Javascript_Jquery_Testing_Asynchronous_Qunit - Fatal编程技术网

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

Javascript 如何在setTimeout中测试用户指定的时间,javascript,jquery,testing,asynchronous,qunit,Javascript,Jquery,Testing,Asynchronous,Qunit,现在我有了一个jQuery插件,它添加了一些额外的定制,围绕如何在特定上下文中处理返回数据以及轮询服务器以获取信息和更改。所需功能之一是允许用户设置轮询间隔。setTimeout与递归是用于创建常量轮询的函数;这也是一项要求 这就是我被难住的地方:除了上面提到的必需功能之外,我还必须测试用户指定的值是否在setTimeout中实际使用。从质量的角度来看,我该怎么做 我已经考虑过直接使用Date.getTime对函数计时,但目前的设置方式不是一个选项。考虑重构代码,让您覆盖在测试中启动超时的方法,

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

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


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

考虑重构代码,让您覆盖在测试中启动超时的方法,允许您验证是否传递了正确的值,没有实际启动超时


如果您需要实际调用SETTIMEOUT,请考虑使用它来模拟StimeTimeUT并控制它所做的操作。

BTW,我理解您可以手动查看并查看是否正常工作。但这需要从QUnit的角度进行测试……目前sinon.js似乎已关闭,但您仍然可以从GitHub获得代码: