在测试驱动代码时获取节点模块的实例

时间:2015-11-06 16:20:13

标签: node.js tdd mocha

我正在创建一个工厂方法,我将返回一个节点模块的实例

var dal1 = require(' ../ dal / dal1');

var dal2 = require(' ../ dal / dal2');

exports.createDAL(角色){

开关(角色){

case "XYZ": return dal1;
case "ABC": return dal2

} };

使用Mocha作为TDD框架工作,当我得到返回的对象时,我将returnObject.constructor.name的值作为对象而不是dal1或dal2。有什么指针吗?

1 个答案:

答案 0 :(得分:0)

所以我继续使用node-module'util'。我能够获得预期的价值,而不仅仅是'对象'

我创建了一个DAL对象

//dal.js

function dal(){

}

dal.prototype.BLAH = function(){
//logic here
}

module.exports = dal

//dal1.js

var inherits = require('util').inherits;

function dal1(){

dal1.call(this);
}

inherits(dal1,dal);

module.exports = dal1;

//similarly dal2.js

//finally in factory
var dal1 = require('./dal1');

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

switch(role){

 case 'XYZ': return new dal1();

 case 'ABC' : return new dal2();

}