2017-03-01 3 views
0

나는 클릭 리스너가있는 객체를 가지고 있으며 이에 대한 테스트를 작성하려고합니다. 재 스민 expect(event).toHaveBeenTriggered()을 사용하는 데 문제가 있으며 문제가있는 것 같습니다. e.preventDefault.event.preventDefault 및 jasmine.toHaveBeenTriggeredOn이 함께 작동하지 않음

리스너 :

$(document).on("click", "input", function (e) { 
    e.preventDefault(); 
    // do something 
}); 

테스트 :

describe("SomeTest", function() { 
    "use strict"; 

    beforeEach(function() { 
     setFixtures("<input />"); 
    }); 

    it("should have been triggered", function() { 
     var input = $('input'); 
     var spyEvent = spyOnEvent(input, 'click'); 
     $(input).click(); 
     expect(spyEvent).toHaveBeenTriggered(); 
    }); 

}); 

toHaveBeenTriggered 테스트에 대한 preventDefault을 작동하거나 사용하지 않도록 얻을 수있는 방법이 있나요?

답변

0

jasmine-jquery 특수 Matcher s는 documentation에서이 toHaveBeenPreventedOn()toHaveBeenPrevented()

에 대한 있습니다

var spyEvent = spyOnEvent('#some_element', 'click') 
$('#some_element').click(function (event){event.preventDefault();}) 
$('#some_element').click() 
expect('click').toHaveBeenPreventedOn('#some_element') 
expect(spyEvent).toHaveBeenPrevented()