【发布时间】:2014-04-10 03:06:28
【问题描述】:
我是 node.js 的新手,在我见过的大多数代码中,我没有看到 IoC/DI 样式的构造函数注入依赖项。
相反,通常使用 node.js 扩展 require() 来创建允许访问外部模块导出的本地变量。
但是在编写单元测试(隔离单层/功能)时,如何模拟通过使用 require 创建的 var 访问的模块?
/helpers/dataHelper.js
var dataModel = require('../models/dataModel.js');
var getFormattedDataForRegion = function(region, callback) {
var data = {};
// validate region
// query dataModel
// async.map format data items
// callback(data);
}
/tests/dataHelperTests.js
describe('dataHelper', function(){
it('getFormattedDataForRegion returns expected response', function(done){
var expectedData = {};
// populate expectedData
// **** need some way to mock dataModel *****
dataHelper.getFormattedDataForRegion("west", function(data){
expect(data).to.eql(expectedData);
done();
});
});
【问题讨论】:
标签: javascript node.js mocking mocha.js