[英]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.