我如何告诉Mocha只在浏览器中运行某个测试(而不是在node.js中)?

时间:2013-06-19 00:17:48

标签: javascript node.js mocha

我正在使用Mocha来测试我的javascript应用程序中的模块。我的一个模块取决于是否有文档对象,因此当我在node.js中运行测试并在浏览器中传入测试页时,该模块的测试失败。

如何告诉Mocha只在浏览器中运行此特定测试,而不是在node.js中运行?

1 个答案:

答案 0 :(得分:2)

if(window && window.document){ runBrowserOnlyTests(); } //?

糟糕。忘了首先检查窗口是否存在。对不起我没听清楚。您可以全局检查“文档”,但在这种情况下显式最好,因为文档或窗口很容易成为Node中的其他var。如果有人在Node中使用文档属性定义了一个名为window的对象,那么这就是无知的。虽然我想你可以检查构造函数名称,如果你担心这个但是这对我来说足够了,特别是因为我假设每个节点模块都有自己的全局对象,或者它们不会指向require方法。 (如果我错了,有人会纠正我)