0
我正在嘗試爲IIFE函數內的以下單擊事件編寫單元測試。我們如何在茉莉花JavaScript單元測試套件中觸發IIFE函數中的單擊事件
jQuery(function($)
{
$('span.select-toggle').click(function()
{
$i = $(this);
if ($i.parent().find('ul.select-sub').is(':visible')) {
$i.removeClass('fa-select-down').addClass('fa-select-right');
} else {
$i.removeClass('fa-select-right').addClass('fa-select-down');
}
});
});
HTML fixture文件:
<div id="select">
<ul class="select-stub" style="visibility :visible;">
<span class="select-toggle" ></span>
</ul>
</div>
單元測試:
describe('Selectmenu Expand/Collapse of a node', function() {
beforeAll(function() {
spyOnEvent('.select-toggle', 'click');
$('span.select-toggle').trigger("click");
});
it('Should visible parent node', function() {
expect($('.select-toggle').parent().find('ul.select-sub:visible').count()).toBe(1);
});
});
但這spyOnEvent
click事件中沒有被解僱,而未能通過測試。有人請建議任何更好的解決方案,以觸發IIFE功能內的點擊事件。
我無法更改腳本的當前行爲。我真的想在單元測試中觸發這個事件監聽器。那麼更好的方法? – supun94