在对前端的js代码添加测试的时候,因为项目需要,首先把amd格式的代码改成了cmd。但是在引用index.js 进行测试的时候,一直报 Error: jQuery requires a window with a document 错误。查阅发现,较新版本的jquery里没有jsdom,所以在node中调用jquery的时候,会报 Error: jQuery requires a window with a document(jquery需要document对象)。
解决办法:(使用 jsdom
mock document);
安装
jsdom
包npm install --save-dev jsdom
引用
jsdom
const jsdom = require('jsdom'); let $ = null, index = null; jsdom.env( "http://www.baidu.com", function (err, window) { $ = require('jquery')(window); index = require('../../somepage/index.js'); } );
接下来就可以对 index.js 文件的函数添加测试啦。
- 还有一些其他的解决办法,可以去这里看一下呀~ http://quaintous.com/2015/07/31/jqery-node-mystery/