Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 为什么我的模拟时间的测试功能在某些环境中从未完成?_Javascript_Sinon_Chai - Fatal编程技术网

Javascript 为什么我的模拟时间的测试功能在某些环境中从未完成?

Javascript 为什么我的模拟时间的测试功能在某些环境中从未完成?,javascript,sinon,chai,Javascript,Sinon,Chai,我有以下sinon.js/chai.js测试我的javascript类 description('tick',function(){ beforeach(函数(){ this.clock=sinon.useFakeTimers(); }); 之后(函数(){ this.clock=sinon.restore(); }); 它('应该增加等待所有翻译人员的时间',函数(){ let queue=new TranslatorQueue(); queue.join(“translator1”); 这

我有以下sinon.js/chai.js测试我的javascript类

description('tick',function(){
beforeach(函数(){
this.clock=sinon.useFakeTimers();
});
之后(函数(){
this.clock=sinon.restore();
});
它('应该增加等待所有翻译人员的时间',函数(){
let queue=new TranslatorQueue();
queue.join(“translator1”);
这个。时钟。滴答(1000);
expect(u.head(queue.queue.timeWaiting).to.equal(1);
queue.join(“translator2”);
这个。时钟。滴答(1000);
expect(u.head(queue.queue).timeWaiting).to.equal(2);
expect(u.last(queue.queue.timeWaiting).to.equal(1);
});

});嗯,通过写出来回答你自己的问题似乎在这里奏效了

作为将来的参考,该问题是由于
sinon.useFakeTimers()
的范围超出了我们可能希望的范围

由于我的代码只使用了
setInterval()
,我可以通过将假调用改为

this.clock=sinon.useFakeTimers(“设置间隔”)

我在这里找到了相关信息:


我不能100%确定为什么它能在我的机器上工作,但不能在服务器上工作…

哈哈,我喜欢这种情况。它叫:-)