Я пытаюсь интегрировать 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());
});
});
TypeError: Cannot read property 'getElementById' of undefined
. Похоже, документ еще не определен.