Mocha如何在没有幻影的情况下进行DOM测试

Neo*_*Neo 4 tdd mocha.js node.js phantomjs

我似乎能够用Mocha进行DOM测试.

我原以为我需要像PhantomJS那样的无头浏览器.

那么使用PhantomJS和Mocha有什么好处呢?(我正在使用Yeoman.)

Lou*_*uis 5

您不需要无头浏览器来使用Mocha进行DOM测试.像jsdom这样的软件包提供了大量的DOM测试所需,无需使用浏览器,无论是否无头.例如,我们用它来测试遍历DOM树的代码.

但是,Mocha本身不支持Node.js中的DOM.还有其他东西必须提供这种支持.如果你在网上关注一些教程,你最终可能会在没有意识到的情况下安装对DOM的支持.例如,一个教程,展示如何使用Mocha在Node.js中测试jQuery代码将告诉你这样做npm install jquery,它也安装了jsdom.

如果其他解决方案无法提供您需要的功能,您必须使用PhantomJS之类的东西.对于instace jsdom不提供MutationObserver接口.(有一个命名的配置设置,MutationEvents但打开它不提供MutationObserver.)因此,如果你需要测试依赖于MutationObserver你必须使用其他东西的代码,比如PhantomJS.