使用mocha javascript时如何模拟dom元素?

我正在使用mocha来测试我的
JavaScript代码.该代码涉及html和css并实现了一个聊天应用程序.据我所知,Mocha可以通过将期望值与函数的返回值进行匹配来测试JavaScript函数.

但是,如果我想测试不返回值的函数呢?主要处理DOM元素的函数. (例如附加图像).

我怎样才能在mocha中模拟DOM元素,然后测试函数是否成功生成适当的DOM元素?

我环顾四周,发现有可能使用selenium webdriver和jsdom.是否可以单独使用mocha进行此测试而没有其他额外接口?

最佳答案 JSDOM非常方便,因为它允许您针对“真正的”DOM实现进行测试,而无需在Web浏览器中运行.

如果你可以run your unit tests inside a browser,你可以用相同的方式断言DOM:

describe("the super special button", () => {

  it("adds an image", (done) => {
    const button = document.querySelector(".js-super-special");
    button.click();

    // give the browser a chance to update the DOM
    setTimeout(() => {
      const image = document.querySelector(".js-image")

      // using assertion library, like chai
      expect(image).to.not.beNull();

      // or using a port of Node's `assert` from a bundler like browserify:
      assert(image != null);

      done();
    })
  })
});
点赞