Шпионами жасмина не звонят
У меня возникли проблемы с шпионажем в Жасмин
Я хочу проверить, была ли нажата ссылка на слайдере с помощью jasmine spy и jasmine jquery.
Вот упрощенная версия:
У меня есть некоторые ссылки, как часть файла HTML.
<a href="#" class="someLink">Link 1</a>
<a href="#" class="someLink">Link 2</a>
слайдер:
var Slider = function(links){
this.sliderLinks = $(links);
this.bindEvents();
}
Slider.prototype.bindEvents = function(){
this.sliderLinks.on('click', this.handleClick);
}
Slider.prototype.handleClick = function(e){
console.log('i have been clicked')
}
Спек-файл:
describe('Slider', function(){
var slider;
beforeEach(function(){
loadFixtures('slider.html');
slider = new Slider('.someLink');
});
it('should handle link click', function(){
spyOn(slider, 'handleClick');
$(slider.sliderLinks[0]).trigger('click');
expect(slider.handleClick).toHaveBeenCalled();
});
});
Тест не пройден. Но 'меня щелкнули был зарегистрирован в консоли, поэтому метод вызывается.
Если я делаю это, тест проходит, хотя:
it('should handle link click', function(){
spyon(slider, 'handleClick');
slider.handleClick();
expect(slider.handleClick).toHaveBeenCalled();
});
Итак, мой вопрос по существу таков:
Тестирую ли я на предмет такого типа неправильно?почему шпион не регистрирует тот факт, что метод был вызван?