如何对Node中的私有成员变量进行Jasmine Spy?

时间:2015-08-21 21:04:42

标签: javascript node.js

我有一个带有函数构造函数的节点模块。我想监视该模块中的私有财产,但无法弄清楚如何监视它。一旦我在它周围创建一个封闭,我就不能再从测试中看到它了。代码......

//logger.js
function Logger(){
   this.log(str){...}
}

//mainMethod.js
var Logger = require('Logger');

function mainMethod(){
  var logger = new Logger();
  logger.log('error')
}

exports.mainMethod = mainMethod;

//my test
it('when main method is called then logger will log "error"',function(){

   spyOn( ... ?)

   expect(logger.log).toHaveBeenCalledWith('error');

}}

显然测试不起作用。所以我真的不知道如何监视该记录器。因为每个节点请求必须使用新对象,所以我不能使用单例。如果这是C#,我只会使用依赖注入,然后监视接口。但到处都是我读到的节点不需要DI容器。请有人帮忙吗?

0 个答案:

没有答案