我正在使用命令:
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 。
导致错误的原因是什么?
答案 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;
});
}