[英]mocha wait before testing a setTimeout function
我有一个函数,在稍微延迟后会调用另一个函数:
const messageboxes = {
fade: target => {
target.classList.add('fade');
window.setTimeout(messageboxes.hide, 350, target);
},
hide: el => {
el.classList.add('displayNone');
el.parentNode.removeChild(el);
}
};
这可以正确添加渐变类,然后在350ms之后添加“ displayNone”类并删除元素。 在摩卡咖啡中,我可以模拟使用jsdom单击元素并检查'fade'类,但想等待350ms来检查'dislpayNone'类。
我能找到的所有示例都与http请求的承诺有关,但我只想暂停一下-这里有解决方案吗?
您必须向Mocha发出执行结束的信号:
describe('setTimeout test', function(){
it('Use `done` callback', function(done){
window.setTimeout(function(){
// Assert here.
done();
}, 350);
});
it('Return promise', function(){
return new Promise((resolve, reject) => window.setTimeout(function(){
// Assert here.
resolve();
}, 350));
});
});
这是一个快速延迟功能,您可以使用它来暂停350 ms,然后在测试中声明所需的内容。
function tryDelay(delayMs){
var startMs = Date.now();
var curMs = Date.now();
while((startMs + delayMs) > curMs)
{
curMs = Date.now();
}
}
tryDelay(350);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.