给出ReferenceError的mocha命令:未定义窗口

时间:2015-12-03 06:58:17

标签: node.js mocha jsdom

我正在使用命令:

mocha --compilers :./test/babel-setup.js --recursive --watch

这是错误的:

ReferenceError: window is not defined

我的babel-setup.js中有以下内容:

require("babel/register")({
  compact: false
});

我正在使用节点0.12.7和" mocha":" ^ 2.2.5"和" jsdom":" ^ 3.1.2"。

我已经在项目中安装了 jsdom

导致错误的原因是什么?

3 个答案:

答案 0 :(得分:69)

我能够使用jsdom-global来解决此问题。按照该链接中的说明进行安装。具体来说,运行

npm install --save-dev --save-exact jsdom jsdom-global

然后将-r jsdom-global/register添加到您的mocha命令行。当您重新运行测试时,window is not defined错误将消失。

答案 1 :(得分:2)

要使用mocha测试前端库,您需要在此处找到节点modul mocha-jsdom https://www.npmjs.com/package/mocha-jsdom

答案 2 :(得分:0)

由于我对window对象的处理过多,因此我仅使用此代码来确定是否在摩卡咖啡中。

function isMocha(){
    let context = (global || window);
    return ['afterEach','after','beforeEach','before','describe','it'].every(function(functionName){
        return context[functionName] instanceof Function;
    });
}