javascript - '引用错误: document is not defined' error

标签 javascript node.js mocha.js jsdom

我正在尝试将 Mocha 集成到我的应用程序中,但收到文档未定义错误。我也尝试过集成 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;

最佳答案

问题是在声明文档之前,您需要在全局范围内使用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());
  });
});

关于javascript - '引用错误: document is not defined' error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51661741/

相关文章:

javascript - 有没有办法从 javascript 更改 python 脚本中变量的值?

javascript - 关于 IIFE 工作方式的困惑

javascript - 如何在 JavaScript 中使用 Mocha 和 assert.throws 测试参数的值?

javascript - Node typescript : JSON undefined when using bracket notation

javascript - 使用 mongoose 只提取 mongodb 中的前 4 个文档?

javascript - 使用 Supertest,我可以创建一个默认设置一些 header 的替代请求吗?

javascript - 如何使用 Sinon 来 stub 发出 REST 请求的调用

javascript - 我如何知道 html2canvas 何时完成?

node.js - 我如何通过 Mocha 的模拟 promise 进行测试?

node.js - mock 鹅 : how to simulate a error in mongoose?