Я пытаюсь вызвать событие прокрутки внутри моего модульного теста, используя 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