2015-11-06 26 views
-1

我创建一个工厂方法,其中i是回一个节点模块获取节点模块的实例,同时测试驱动科迪尔

变种DAL1 =要求的一个实例(” ../ DAL/DAL1' );

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

exports.createDAL(角色){

开关(角色){

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

} };

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

回答

0

所以我继续使用节点模块'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(); 

}