Я пытаюсь проверить виджет, который я создал, который делает некоторые вещи с прокруткой. Я использую Jasmine и jasmine-jquery для тестирования, но я получаю некоторые нечетные результаты.Жасмин - jasmine-jquery spyOnEvent
Я хочу проверить, что мой виджет успешно запускает событие, когда страница прокручивается определенным образом. Я упростил ситуацию здесь, если это мой виджет, вызывающий проблему, поэтому я просто пытаюсь проверить, что событие прокрутки было запущено в окне.
it("should trigger scrollEvent on the window", function(){
loadFixtures('lorem-ipsum.html'); //gives some height to the page
window.scrollTo(0,0);
console.log($(window).scrollTop()); //Should return 0
$(window).bind("scroll", function (e) {
console.log("Now scrolling");
});
window.scroll(0,100);
console.log($(window).scrollTop()); //Should return 100
window.scroll(0,50);
console.log($(window).scrollTop()); //Should return 50
expect('scroll').toHaveBeenTriggeredOn(window);
});
В консоли я получаю следующее
Testing started at 16:32 ...
0
100
50
Expected event scroll to have been triggered on [object Object]
()@C:/Projects/jquery.scrollevents/tests/specs/development.js:45
'Now scrolling'
Expected event scroll to have been triggered on [object Object]
Error: Expected event scroll to have been triggered on [object Object]
at null.<anonymous> (C:/Projects/jquery.scrollevents/tests/specs/development.js:45:34)
0
100
50'Now scrolling'
Process finished with exit code 0
Я не уверен, что сделать это как порядок событий нечетное. Он работает дважды? Событие прокрутки запускается только после ожидания?
Я отлаживал его в браузере, и вы можете видеть то же самое, что происходит. Сначала проведите тест, затем запускайте события браузера.
Я посмотрел на асинхронные функции Жасмина, но я не уверен, чего я жду?
Любая помощь была бы принята с благодарностью. Спасибо