如何在Backbone的Jasmine测试运行器中测试点击事件?

时间:2019-12-04 23:19:26

标签: jquery backbone.js jasmine jasmine-jquery

我有一个规范,我想测试单击按钮时是否调用了一个方法。

我已经在点击文件中注册了点击事件:

events: {
    'click #toggle': 'onClickToggle'
}

我的测试文件如下:

describe('Todo Item\'s view\'s suite', function() {

    let view;

    beforeEach(function() {
        const todoItem = new TodoItem({ description: 'Some Todo ' });
        view = new TodoItemView({ model: todoItem });

        const html = '<label><input type="checkbox" id="toggle" />Some Desc</label><button id="delete">Delete</button>';
        view.$el.html(html);
    });

    it('clicking on element or checkbox should invoke the onClickToggle method', function() {
        spyOn(view, 'onClickToggle');

        view.$('#toggle').click();

        expect(view.onClickToggle).toHaveBeenCalled();
    });
});

我已经在测试运行器HTML中引用了所有必需的文件,包括jQuery,Jasmine,jQuery-Jasmine。但是,当规格文件在浏览器中运行时,测试将失败。

引发以下错误:

Error: Expected spy onClickToggle to have been called.
    at <Jasmine>
    at UserContext.<anonymous> (http://127.0.0.1:5500/tests/jasmine/spec/views/TodoItemViewSpec.js:28:36)
    at <Jasmine>

0 个答案:

没有答案
相关问题