编写涉及DOM的单元测试的正确方法

时间:2016-07-06 02:39:46

标签: javascript unit-testing mocha

我对单元测试很陌生。我想要一些关于如何正确编写涉及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"));
  });
  });
});

编写此测试的更好方法是什么?

0 个答案:

没有答案