单击调用函数的事件

时间:2016-04-27 21:25:46

标签: javascript jquery jasmine

我正在创建一个Jasmine测试,以查看在单击对象$('#notification')时是否正在调用该函数。

以下是.cshtml文件中的代码:

$('#notification').click(function() {
    showNotification();
  });

这是我目前的Jasmine测试:

describe("Notification", function () {
    beforeEach(function () {
       loadFixtures('dashboard.cshtml');
    });
    it("should call function when notification is clicked", function() {
       spyOn(window, 'showNotification');
       $('#notification').click();
       expect(window.showNotification).toHaveBeenCalled();
    });
  });

但是,我得到了这个结果:

Test 'Notification:should call function when notification is clicked' failed
    Expected spy showNotification to have been called.

我做错了吗?我错过了什么吗?我是Jasmine的新手。

编辑:这是showNotification的样子。

function showNotification () { 
    loadNotification('', ''); 
    resetFields(); 
 }
编辑:找到了我的问题的解决方案。我使用以下代码来模拟点击。

 $('#notification').on('click', function () {
           showNotification();
 });
 $('#notification').click();

我现在能够测试是否正在调用showNotification以及showNotification中的loadNotification和resetFields。

感谢那些回应的人。有人会关闭这个吗?

1 个答案:

答案 0 :(得分:0)

结果显示,您将监听器添加到按钮,但从未通过单击操作触发它。

添加此点击操作以触发测试:

$('#notification').trigger('click');