브라우저에서 실행중인 Mocha를 사용하여 단위 테스트 내부에서 스크롤 이벤트를 트리거하려고합니다.단위 테스트를위한 트리거링 이벤트
describe('Background Change', function() {
describe('toogleBgHandler()', function() {
it('should contain toggle-bg when scrollTop is more than 0', function() {
let html = document.createElement('html');
var target = [];
target.push(html);
let body = document.createElement('body');
let div = document.createElement('div');
html.appendChild(body);
body.appendChild(div);
document.body.dispatchEvent(new Event("scroll"));
toggleBgHandler(target, div)
chai.assert.isTrue(div.classList.contains("toggle-bg"));
});
});
});
기능 내가 시험에 노력하고 있습니다 :
function toggleBgHandler(html, ele) {
document.addEventListener("scroll", (e) => {
if (html[0].scrollTop === 0) {
ele.classList.remove("toggle-bg");
} else {
ele.classList.add("toggle-bg");
}
});
}
가 어떻게 그것에 의존하는 함수에 대한 스크롤 이벤트를 트리거 할 나는 다음과 같은 코드가? 나는 또한 이벤트 객체를 만들려고했지만 그 중 하나가 작동하지 않았다. 모든 포인터가 좋을 것입니다.
이 테스트는 브라우저 내부에서 실행되고 있습니까, 아니면'jsdom'과 같은 것을 사용하고 있습니까? – Jacob
@Jacob이 테스트는 브라우저에서 실행 중입니다. 명확하게 업데이트되었습니다. – freetoplay
이벤트를 만드는 것이 옳은 일이므로 시도한 것을 보는 것이 좋을 것이므로 왜 작동하지 않는지 알아낼 수 있습니다. – Jacob