2012-06-09 31 views
3

我使用jQuery-Jasmine擴展來監視事件,但我無法獲得正確的語法。如何使用SpyOnEvent窺探jquery-jasmine事件

// Get a button 
var $button = $('#ai1ec_subscribe_users'); 
// Call the function 
utility_functions.block_all_submit_and_ajax($button.get(0)); 
// check that all submit are disabled 
var first_multi = $('.ai1ec-facebook-refresh-multiselect:first'); 
spyOnEvent('.ai1ec-facebook-refresh-multiselect:first', 'click'); 
first_multi.click(); 
expect('click').toHaveBeenTriggeredOn('.ai1ec-facebook-refresh-multiselect:first'); 

這讓我回

預期事件單擊已觸發 .ai1ec Facebook的刷新,多選:第一

但我之前單擊它的行檢查,所以我一定是做錯了什麼。

回答

6

問題是我沒有以正確的方式觸發事件。

這工作:

it("Prevent all ajax functionality", function() { 
     // Get a button 
     var $button = $('#ai1ec_subscribe_users'); 
     // Call the function 
     utility_functions.block_all_submit_and_ajax($button.get(0)); 
     // check that all submit are disabled 
     spyOnEvent($('.ai1ec-facebook-refresh-multiselect:first'), 'click'); 
     $('.ai1ec-facebook-refresh-multiselect:first')[0].click(); 
     expect('click').toHaveBeenTriggeredOn($('.ai1ec-facebook-refresh-multiselect:first')); 
});