在我的mocha测试中,我总是需要相同的库。例如:
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();
这样的任何前缀
怎么做或有更好的解决方案?感谢。
答案 0 :(得分:1)
基本上,这是不可能的。
Mocha在长版本中有一个-r
(或--require
)参数可以帮助您需要模块,但是documentation状态:
--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
更好的名字,但基本上这可能是一种让它起作用的方法。