QUnit for javascript测试事件

我是javascript测试的新手。 我能够测试qunit的所有其他function。 但无法弄清楚如何使用qunit来测试事件处理程序的function。 在jquery event.js测试套件中看到一个用于触发器,绑定和委托函数的示例后,我尝试了下面的内容。

test('Event Handling', function () { var hai = function() { console.log('Clicked'); ok(true, 'click event triggered'); }; eventLib.addEvent(document.getElementById('qunit-header'), 'click', hai); $('#qunit-header').trigger('click'); ok(true, 'It happend'); }); 

这里eventLib是我编写的用于附加和分离事件的函数。 但是上面的代码似乎没有在qunit html接口上给出任何类型的输出[除了它发生]。 但是,如果我手动单击标题,事件处理程序将记录到控制台。 我正在使用jquery v1.6.2

似乎.trigger只运行通过jQuery绑定的事件,而不是通过其他方式。 在Chrome上,这只记录jquery : http : //jsfiddle.net/LYxD4/ 。

 $("#x").get(0) .addEventListener("click", console.log.bind(console, "native"), false); $("#x").on("click", console.log.bind(console, "jquery")); $("#x").trigger("click");​ 

您可以改为使用.dispatchEvent : http : //jsfiddle.net/LYxD4/1/ 。

 var event = document.createEvent("HTMLEvents"); event.initEvent("click", true, true); $(...).get(0).dispatchEvent(event);​