스크롤로 물건을 만드는 위젯을 테스트하려고합니다. 테스트를 위해 Jasmine과 jasmine-jquery를 사용하고 있지만 이상한 결과가 나타납니다.Jasmine-jasmine-jquery spyOnEvent
페이지가 특정 방식으로 스크롤 될 때 내 위젯이 이벤트를 성공적으로 트리거하는지 테스트하고 싶습니다. 문제가 발생하는 위젯 일 경우 여기에서 작업을 단순화했습니다. 그래서 스크롤 이벤트가 창에서 트리거되었는지 테스트하려고합니다.
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
다음 내가 얻을 콘솔에서
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);
});
나는 사건의 순서가 홀수로 이것을 만들 모르겠어요. 그것은 두 번 실행됩니까? 스크롤 이벤트는 예상 된 후에 만 트리거됩니까?
브라우저에서 디버깅했습니다. 동일한 문제가 발생할 수 있습니다. 테스트 실패 후 브라우저 이벤트가 트리거됩니다.
Jasmine의 비동기 기능을 살펴 보았지만 기다리는 것이 확실하지 않습니다.
도움을 주시면 감사하겠습니다. 감사합니다