2009-07-20 5 views
7

자바 스크립트 키보드 이벤트 처리기를 테스트하는 방법이 있습니까 (keypress, keyup, keydown 이벤트)?jQuery 키보드 이벤트를 단위 테스트하는 방법은 무엇입니까?

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

$('#myId').keyup(keyUpEvHandler); 

하고 단지 단위 테스트에서이 기능을 실행할 수 있지만 통과로 실제 키가있을 때 나는 동일하게 이벤트 인수 개체를 준비해야합니다 :

는 나는이 같은 이벤트 핸들러를 선언 할 수 있습니다 알고 pressed :

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

이 이벤트를 트리거하고 키 코드를 인수 또는 이와 비슷한 것으로 전달할 수있는 방법이 있습니까? 불행하게도 jQuery trigger() docs은 키보드 이벤트를 다루지 않습니다.

답변

15

이벤트 개체를 통해 임의의 데이터를 전달할 수 있습니다.

워드 프로세서 :

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 설정을해야합니다.

+0

잘 작동합니다. 감사. – RaYell

+1

좋은 답변이지만, triggerEvent()에서는 작동하지 않는 것 같습니다. triggerEvent는 처리기의 반환 값을 테스트 할 때 더 유용합니다. –

관련 문제