Я использую Jasmine, чтобы проверить, создаются ли определенные объекты и вызываются ли для них методы.
У меня есть виджет jQuery, который создает объекты flipcounter и вызывает для них метод setValue. Код для флип-счетчика находится здесь: https://bitbucket.org/cnanney/apple-style-flip-counter/src/13fd00129a41/js/flipcounter.js
Флип-счетчики создаются с использованием:
var myFlipCounter = new flipCounter("counter", {inc: 23, pace: 500});
I хотите проверить, созданы ли счетчики и для них вызывается метод setValue. Моя проблема в том, как мне шпионить за этими объектами еще до их создания? Могу ли я шпионить за конструктором и возвращать фальшивые объекты? Пример кода действительно поможет. Спасибо за вашу помощь! :)
Обновление:
Я пробовал шпионить за flipCounter вот так:
myStub = jasmine.createSpy('myStub');
spyOn(window, 'flipCounter').andReturn(myStub);
//expectation
expect(window.flipCounter).toHaveBeenCalled();
Затем тестирование вызова setValue с помощью flipCounter:
spyOn(myStub, 'setValue');
//expectation
expect(myStub.setValue).toHaveBeenCalled();
первый тест для инициализации flipCounter подходит, но для тестирования setValue вызов, все, что я получаю, это ошибка «метод setValue () не существует». Правильно ли я делаю это? Спасибо!