首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Karma-Mocha -如何测试侦听DOMContentLoaded事件的方法

Karma-Mocha -如何测试侦听DOMContentLoaded事件的方法
EN

Stack Overflow用户
提问于 2017-03-29 10:49:54
回答 1查看 602关注 0票数 0

我正在为我的公司维护的一个内部框架编写测试。其中有一个方法等同于jQuery的$(document).ready(handler)方法。该方法如下所示:

代码语言:javascript
复制
export function $ready(fn) {
    document.readyState === 'complete' ?
        $exec(fn) :
        document.addEventListener('DOMContentLoaded', function() {
            $exec(fn);
        });
}

我希望能够编写一个测试来执行事件侦听器回调,而不是立即执行fn,但是我不知道在readyState设置为complete之前执行测试的方法,也不知道重新触发DOMContentLoaded事件的方法。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-04-18 21:59:49

重新触发DOMContentLoaded

代码语言:javascript
复制
// Create the event.
var event = document.createEvent('Event');

// Define that the event name is 'DOMContentLoaded'.
event.initEvent('DOMContentLoaded', true, true);

window.document.dispatchEvent(event);

然后你就可以测试它了

代码语言:javascript
复制
describe('Some feature', function() {
  it('should increase the number of div', function(){
    expect(document.querySelector('div')).to.equal(10);
    // retrigger DOMContentLoaded event here
    expect(document.querySelector('div')).to.equal(15);
  });
});

createEvent API

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43083419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档