我有一个带有函数构造函数的节点模块。我想监视该模块中的私有财产,但无法弄清楚如何监视它。一旦我在它周围创建一个封闭,我就不能再从测试中看到它了。代码......
//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容器。请有人帮忙吗?