当我添加setTimeout时,我收到了以下错误:
// Suite
describe("sidebar", function() {
setTimeout(function(){
document.querySelector('.fa-bars').click();
expect(document.getElementById('sidebar')!=null).toEqual(true);
}, 2000);
});
但我不明白如何在setTimeout中调用它甚至可以触发此错误?
答案 0 :(得分:2)
您正在使用同步测试来测试异步代码。尝试
// Suite
describe("sidebar", function() {
runs( function(){ // encapsulates async code
setTimeout(function(){
document.querySelector('.fa-bars').click();
expect(document.getElementById('sidebar')!=null).toEqual(true);
}, 2000);
});
});
有关详细信息,请查看https://github.com/pivotal/jasmine/wiki/Asynchronous-specs
答案 1 :(得分:1)
你需要调用完成回调:
describe("sidebar", function() {
it('should work with setTimeout', function(done) {
setTimeout(function(){
document.querySelector('.fa-bars').click();
expect(document.getElementById('sidebar')!=null).toEqual(true);
done();
}, 2000);
});
});