2012-03-12 2 views
1

정말 자바 테스트에 새로운 기능입니다. qunit의 다른 모든 기능을 테스트 할 수 있습니다. 그러나 qunit을 사용하여 이벤트 처리기 기능을 테스트하는 방법을 알 수 없습니다. jquery event.js 테스트 스위트에서 샘플을보고 나서 아래에서 시도한 후 & 대리자 함수를 바인딩합니다.자바 스크립트를위한 QUnit 이벤트 테스트

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 인터페이스에 어떤 종류의 출력도 제공하지 않는 것 같습니다. 하지만 수동으로 헤더를 클릭하면 이벤트 처리기가 콘솔에 기록됩니다. 나는 .trigger 만하지 다른 방법을 통해, jQuery를 통해 바인딩 이벤트를 실행하는 것 JQuery와 v1.6.2

답변

6

을 사용하고 있습니다. 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);​ 
관련 문제