繁体   English   中英

如何在Mocha测试中重用变量?

[英]How to reuse variables in Mocha tests?

在我的摩卡测试中,我总是需要相同的库。 例如:

var mongoose = require('mongoose'),
  User = mongoose.model('User'),
  _ = require('underscore');

我想像这样在每个测试文件中使用它们:

describe('xxx', function () {
  it('xxx', function (done) {
    var user = new User();
    done();
  });
});

而不使用任何前缀,例如var user = new somefile.User(); 怎么做还是有更好的解决方案? 谢谢。

基本上,这是不可能的。

Mocha具有-r (或长版本中的--require )参数,该参数可帮助您需要模块,但如文档所述:

--require选项对诸如should.js之类的库很有用,因此您可以简单地--require should而不是在每个测试文件中手动调用require('should') 请注意,这应该很好,因为它可以Object.prototype ,但是,如果您希望访问模块的导出,则必须要求它们,例如var should = require('should')

我可以想象出一种解决方法是引入一个辅助文件,该文件除了使用单个模块导出所需的所有必需模块外,基本上什么也没做(基本上归结为您建议的带prefix ):

module.exports = {
  mongoose: require('mongoose'),
  User: mongoose.model('User'),
  _: require('underscore')
};

这样一来,您只能在实际的测试文件(帮助文件)中导入一个模块,并将所有其他模块作为子对象访问,例如:

var helper = require('./helper');

describe('xxx', function () {
  it('xxx', function (done) {
    var user = new helper.User();
    done();
  });
});

可以使用比helper更好的名称,但是基本上这可以使它起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM