2012-06-09 75 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')); 
});