myt*_*eal 8 javascript mocha.js node.js jsdom redux
我正在尝试使用sinon的mock和spy来测试Redux组件和异步操作,但是只要我将sinon导入任何测试文件,运行以下npm脚本:
mocha --require test/helpers/browser.js --compilers.:babel-core/register --opts test/client/**/*.{js,jsx} --recursive test/client
我收到以下错误:
var div = typeof document !== "undefined" && document.createElement("div");
^
Run Code Online (Sandbox Code Playgroud)
TypeError:document.createElement不是.../node_modules/sinon/lib/sinon/util/core/deep-equal.js中的函数:3:55
browser.js是我设置JSDOM的地方:
import { JSDOM } from 'jsdom';
const doc = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>');
cost win = doc.defaultView; // tried doc.window;
global.document = doc;
global.window = win;
/*
Object.keys(win).forEach(property => {
if (typeof global[property] === 'undefined') {
global[property] = win[property];
}
});
*/
global.navigator = {
userAgent: 'node.js'
};
Run Code Online (Sandbox Code Playgroud)
我想我没有正确设置jsdom?我试着环顾四周,在上面的browser.js文件中找到了注释代码,但是在取消注释时会产生错误:
Object.keys(win).forEach(function (property) {
^
Run Code Online (Sandbox Code Playgroud)
TypeError:无法将undefined或null转换为object.
ccp*_*rog 28
document是一种属性window,而不是相反:
const dom = new JSDOM('<!DOCTYPE html><html><head></head><body></body></html>');
global.window = dom.window;
global.document = dom.window.document;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6541 次 |
| 最近记录: |