该错误通常在Node.js中使用Ava+Sinon进行浏览器测试时出现。因为window对象只有在浏览器环境中才有定义,在Node.js环境中是未定义的。
解决方法是使用jsdom模块在Node.js中模拟浏览器环境。具体步骤如下:
安装jsdom模块:npm install jsdom --save-dev
在测试文件头部引用jsdom并创建全局window和document对象:
const { JSDOM } = require('jsdom'); const { window } = new JSDOM('
'); global.window = window; global.document = window.document;在完成测试后,记得删除全局window和document对象,以防止影响其他测试文件:
delete global.window; delete global.document;
使用以上方法可以解决'Ava+Sinon unite testing. ReferenceError: window is not defined”错误。