如何对jQuery键盘事件进行单元测试?

如何对jQuery键盘事件进行单元测试?,jquery,unit-testing,events,keyboard-events,qunit,Jquery,Unit Testing,Events,Keyboard Events,Qunit,有没有一种方法可以测试JavaScript键盘事件处理程序(对于keypress,keyup,keydown事件) 我知道我可以像这样声明事件处理程序: function keyUpEvHandler(e) { ... // code here } $('#myId').keyup(keyUpEvHandler); 然后在单元测试中运行此函数,但我必须准备事件参数对象,使其与按实际键时传递的相同: var e = {keyCode: 70, ...}; 是否有任何方法触发此事件并将

有没有一种方法可以测试JavaScript键盘事件处理程序(对于
keypress
keyup
keydown
事件)

我知道我可以像这样声明事件处理程序:

function keyUpEvHandler(e) {
    ... // code here
}

$('#myId').keyup(keyUpEvHandler);
然后在单元测试中运行此函数,但我必须准备事件参数对象,使其与按实际键时传递的相同:

var e = {keyCode: 70, ...};

是否有任何方法触发此事件并将键代码作为参数或类似的内容传递?不幸的是,它不包括键盘事件。

您可以通过事件对象传递任意数据

文件:

var event = jQuery.Event("logged");
event.user = "foo";
event.pass = "bar";
$("body").trigger(event);
您可以做什么:

var event = jQuery.Event("keyup");
event.keyCode = 72;
$(".selector").trigger(event);

这样,传递给处理程序的事件将把
keyCode
设置为您想要的任何值。

答案不错,但这似乎不适用于triggerEvent(),这在测试处理程序的返回值时更有用。