Mocha'未捕获的ReferenceError:窗口未定义'

时间:2013-12-12 11:59:07

标签: javascript unit-testing mocha

我刚刚开始使用JS单元测试,而且每次测试都很顺利(我已经使用了Mocha)我遇到了问题,但它需要一些“文档”属性,例如:

var baseTag  = document.getElementsByTagName('base');

它给了我以下错误:

Mocha 'Uncaught ReferenceError: document is not defined'

我的测试运行命令是:

mocha -u bdd test.js --reporter spec

现在我的问题是,当我需要访问文档和DOM对象时,是否需要一些PhantomJS(或simillar工具)进行测试?或者我刚刚打开任何建议如何解决这个问题。

1 个答案:

答案 0 :(得分:4)

是的,您需要使用PhantomJS或jsdom之类的东西,以便针对某种DOM树运行您的代码。默认情况下,Node不提供DOM树,因为它是大多数应用程序不需要的特定功能。

您想要选择哪种解决方案取决于您正在测试的代码。我使用jsdom到test code获得了良好的结果,只需要在DOM树中导航节点。肯定有一点是jsdom不会这样做的。我不确定限制在哪里。