我有一个规范,我想测试单击按钮时是否调用了一个方法。
我已经在点击文件中注册了点击事件:
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>