'ReferenceError: document is not defined' error
'ReferenceError: document is not defined' error
我正在尝试将 Mocha 集成到我的应用程序中,但出现 document is not defined
错误。我也尝试过集成 JSDOM 来解决这个问题,但没有成功。也许我的实现是错误的。提前致谢!
注意:我正在本地对此进行测试,但稍后会在 Amazon EC2 上托管它。当在服务器上实时托管时,文档错误会自行消失吗?
test.js
var test = require('../index.js');
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
describe('Mutliply', function() {
jsdom();
it('should equal 9 when multiply is called', function() {
assert.equal(9, test.multiply());
});
});
index.js
'use strict';
let test = {};
let movieList = document.getElementById('movie-list');
//bunch of code
test.multiply = function() {
return 3*3;
}
module.exports = test;
问题是您在声明文档之前 require
在全局范围内使用 document
的代码。
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
var test = require('../index.js');
describe('Mutliply', function() { ...
应该可以,甚至
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
describe('Mutliply', function() {
var test = require('../index.js'); // late import
it('should equal 9 when multiply is called', function() {
assert.equal(9, test.multiply());
});
});
您可以尝试使用 JSDom 添加 Dom 对节点的支持:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
global.document = new JSDOM(html).window.document;
我正在尝试将 Mocha 集成到我的应用程序中,但出现 document is not defined
错误。我也尝试过集成 JSDOM 来解决这个问题,但没有成功。也许我的实现是错误的。提前致谢!
注意:我正在本地对此进行测试,但稍后会在 Amazon EC2 上托管它。当在服务器上实时托管时,文档错误会自行消失吗?
test.js
var test = require('../index.js');
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
describe('Mutliply', function() {
jsdom();
it('should equal 9 when multiply is called', function() {
assert.equal(9, test.multiply());
});
});
index.js
'use strict';
let test = {};
let movieList = document.getElementById('movie-list');
//bunch of code
test.multiply = function() {
return 3*3;
}
module.exports = test;
问题是您在声明文档之前 require
在全局范围内使用 document
的代码。
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
var test = require('../index.js');
describe('Mutliply', function() { ...
应该可以,甚至
var assert = require('assert');
var jsdom = require('mocha-jsdom');
global.document = jsdom();
describe('Mutliply', function() {
var test = require('../index.js'); // late import
it('should equal 9 when multiply is called', function() {
assert.equal(9, test.multiply());
});
});
您可以尝试使用 JSDom 添加 Dom 对节点的支持:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
global.document = new JSDOM(html).window.document;