javascript - Mocha 测试中的共享功能

标签 javascript node.js mocha.js

我将以下代码放在名为 shared.js 的自己的文件中

afterEach(function () {
  // insert code 
});

var foo;

beforeEach(function () {
  foo = {
    bar: []
  };
});

exports = module.exports = {};
exports.foo = foo;

我希望在我的每个 mocha.js 测试中运行 afterEachbeforeEach 。所以在每个测试文件中,我需要 shared.js

问题是 foo 在我的测试范围内似乎不可用。 foo.bar 未定义且无法访问。 beforeEach()afterEach Hook 运行得很好,但我无法理解如何正确导出 foo 的范围。这可能更像是 Node.js 问题,而不是实际的 Mocha 问题。

最佳答案

问题是您无法修改导出的引用。在您的情况下,您正在导出 undefined,因为 foo 未初始化。如果您使用空对象初始化 foo,然后尝试将其重新分配给不同的事物/对象,它仍然无法工作,因为导出的引用仍然相同。

您唯一能做的就是修改(改变)导出的对象,如下所示:

afterEach(function () {
  // insert code 
});

var foo = {};

beforeEach(function () {
  foo.bar = [];
});

exports = module.exports = {};
exports.foo = foo;

关于javascript - Mocha 测试中的共享功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38467946/

相关文章:

javascript - Node , Mongoose 'findOne' 在一个集合上,在另一个集合的 'find' 内

javascript - phantomjs 获取所有 img 元素

node.js - 捕获bunyan日志/查看bunyan记录器

node.js - nodejs multer 正在获取 req.file 但未将其上传到目的地

javascript - 基于内部没有类的 jQuery 选择器

javascript - 尝试使用 Node.js 和 mysql javascript 客户端连接到 MySQL 数据库

node.js - 使用 node-request 和 fs Promified 下载图像,在 Node.js 中没有管道

node.js - Mocha 集成 "RangeError: Maximum call stack size exceeded"

javascript - aws-sdk s3 上传在 Mocha 测试中无法正常工作

javascript - 简单的 NodeJS/Express 单元测试