我正在使用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();
})
})
});