我已经在这个问题上苦苦挣扎了几个小时,我无法找到解决方案。
假设我有这个文件( main.js )导出一个对象:
var MyModule = require('./module');
var dependency = require('./moduleDependency');
exports.start = function start(app){
var myObject = new MyModule(dependency);
module.exports.myObject = myObject; //sharing this object
};
然后,在控制器中我需要它( controller.js )修改该对象:
var myObject = require('./main').myObject;
exports.routeLogic = function(req, res, next){
myObject.setName('newName');
res.sendStatus(200);
};
当我需要 myObject 时,问题出现在我的测试规范中,缺少这些修改:
var myObject = require('./main').myObject;
describe('test spec', function(){
before(function(done){
//executing request in order to use that controller
});
it('should pass', function(){
res.name.should.equal('newName');
});
});
我使用 supertest 和 mocha 进行此测试
提前致谢;]