javascript - Javascript Mocha测试TypeError:x不是构造函数
问题描述
我正在使用两个 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:操作。节点不是构造函数”
我已经尝试过
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;
推荐阅读
- sql-server - SQL Server 非规范化表并仍然链接到外键
- c# - Web api 中的参数值始终为空
- scala - 如何让相同基本特征的多个特征实现相同的方法
- docker - X容器停止后如何使docker-compose停止?
- node.js - 如何修复我的 heroku 应用程序并防止它崩溃?at=错误代码=H10 desc="应用程序崩溃"方法=获取路径="/"
- php - 如何在 tcpdf 中创建垂直侧标题表
- python - 如何打开文件夹中的所有 excel 文件创建并创建由这些文件中的特定工作表组成的新电子表格
- swift - 为什么我的自定义类没有出现在 Interface Builder 的下拉列表中?
- c# - 将自定义属性从 viewmodel 添加到 Datagrid
- replace - 没有 Cygwin 的 Windows 上的 Emacs 递归搜索/替换