2017-03-01 15 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

特別Matcher sがdocumentationからこのtoHaveBeenPreventedOn()toHaveBeenPrevented()

ためjasmine-jqueryにあります

var spyEvent = spyOnEvent('#some_element', 'click') 
$('#some_element').click(function (event){event.preventDefault();}) 
$('#some_element').click() 
expect('click').toHaveBeenPreventedOn('#some_element') 
expect(spyEvent).toHaveBeenPrevented() 
関連する問題