У меня есть класс, как:Тестирование обработчика событий на объекте с жасмином
MyClass = function() {
var view = {
delegateEvents: function() {
this.$el.on('click', 'input[type="radio"]', this.toggleServices);
},
toggleServices: function() {
…
},
render: function() {
blah-blah-blag (rendering the view)…
this.delegateEvents();
}
};
view.init();
return view;
}
(как я получаю $el
выходит за рамки вопроса, но убедитесь, что он работает) Я тестирование экземпляр этот класс в Жасмин нравится:
it('it handles clicks on radio buttons', function() {
var view = new MyClass();
view.render();
spyOn(view, 'toggleServices');
view.$('input[type="radio"]').eq(0).click();
expect(view.toggleServices).toHaveBeenCalled();
});
проблема заключается в том, что в настоящее время в тесте, шпион не вызывается, но код переходит в оригинальные toggleServices()
классе вместо того, чтобы быть шпионом. Похоже, я не понимаю, как создать шпиона, который запросил бы this.toggleServices
в init()
.
Любые предложения?
Извините, забыли принять ответ. Конечно, это была проблема. – spliter