Javascript Mocha 测试 TypeError : x is not a constructor

标签 javascript mocha.js

我正在使用两个 js 文件对 Mocha 进行测试。

我的 test.js 文件如下所示:

const assert = require('assert');
const operations = require('./operations.js');

it('Calculates correct deserialization', () => {

  var leftLeft = new operations.Node('left.left', null, null);
  var left = new operations.Node('left', leftLeft, null);
  var right = new operations.Node('right', null, null);
  var root = new operations.Node('root', left, right);
  assert.equal(operations.deserialize(serialize(root)).left.left.val == 'left.left');
});

我的operations.js 文件如下所示:

function Node(val, left, right) {
  this.val = val;
  this.left = left;
  this.right = right;
}

虽然不完整,但测试未能实例化 Node 对象,并且 退出并显示消息

"TypeError: operations.Node is not a constructor"

我已经尝试过

var leftLeft = new Node('left.left', null, null);

也就是说,没有 de operations.Node()。 我正在使用严格模式。

最佳答案

如果您要将文件作为模块require(),那么您必须导出函数:

function Node(val, left, right) {
  this.val = val;
  this.left = left;
  this.right = right;
}

module.exports = Node;

关于Javascript Mocha 测试 TypeError : x is not a constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50284727/

相关文章:

javascript - 设置div滚动条位置

javascript - jQuery:函数的一部分未执行

javascript - 如何设置 mocha 以在 Gatsby 存储库中运行测试

angularjs - Angular、Sinon、Promise

使用 mocha、chai 和 sinon 测试 flux 存储

unit-testing - 使用Sinon、Mocha、Enzyme 和 React 模拟窗口

javascript - 拖动时围绕对象旋转相机

javascript - 尽管存在 JS 错误,Phantomjs 仍需要页面源

javascript - 使用 JavaScript 将光标置于 Chrome 文本输入元素中

javascript - Controller 的 Mocha 单元测试解决了来自服务的 promise