我对单元测试很陌生。我想要一些关于如何正确编写涉及DOM和回调的测试的指针。我一直在网上阅读资料,但我仍然对一些部分感到困惑。
function toggleBgHandler(html, ele) {
document.addEventListener("scroll", (e) => {
if (html[0].scrollTop === 0 && ele.classList.contains("toggle-bg")) {
ele.classList.remove("toggle-bg");
} else {
ele.classList.add("toggle-bg");
}
});
}
我正在Mocha中编写一个看起来像这样的测试(这是我的第一个测试用例并且它未完成)。我已经读过,我不应该在测试中包含DOM元素。
describe('Background Change', function() {
describe('toogleBgHandler()', function() {
it('should contain toggle-bg when scrollTop is more than 0', function() {
let target = [{scrollTop : 10}];
let div = document.createElement('div');
// need to trigger scroll event here
toggleBgHandler(target, div);
chai.assert.isTrue(div.classList.contains("toggle-bg"));
});
});
});
编写此测试的更好方法是什么?