ブラウザで実行中のモカを使用してユニットテスト内でスクロールイベントをトリガーしようとしています。私はそれに依存する関数のためのスクロールイベントをトリガするにはどうすればよいユニットテストのトリガーイベント
function toggleBgHandler(html, ele) {
document.addEventListener("scroll", (e) => {
if (html[0].scrollTop === 0) {
ele.classList.remove("toggle-bg");
} else {
ele.classList.add("toggle-bg");
}
});
}
:私は、テストしようとしています
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"));
});
});
});
が機能:私は、次のコードを持っていますか?イベントオブジェクトの作成も試しましたが、それもうまくいきませんでした。どのポインタも素晴らしいでしょう。
このテストはブラウザの内部で実行されていますか、または 'jsdom'のようなものを使用していますか? – Jacob
@Jacobこのテストはブラウザで実行されています。明確にするために更新されました。 – freetoplay
イベントを作成することは適切なことでしょう。だから、何が試みられたのかを知ることはいいでしょう。 – Jacob