2016-03-03 50 views
3

app.js如何在使用jasmine-node的节点模块中侦听私有函数?

function _private() { 
    console.log('_private'); 
} 

function public() { 
    console.log('public'); 
    _private(); 
} 

module.exports = { 
    public: public, 
    _private: _private 
}; 

规格/ appSpec.js

describe('test', function() { 
    it('will spy on _private', function() { 
     var app = require('../app'); 
     spyOn(app, '_private'); 
     app.public(); 
     expect(app._private).toHaveBeenCalled(); 
    }); 
}); 

_private()被调用,但间谍不工作,测试失败。

因此,作为问题问,我怎么挂钩间谍,以便它知道_private()被称为?或者这是不可能的?

回答

0

您可以致电_privatethis否则函数没有定义。试试这个:

function public() { 
    console.log('public'); 
    this._private(); 
}