2016-03-03 4 views
3

app.jsКак сделать spyOn частных функций в узловом модуле с использованием 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

_private с this иначе функция не задана. попробуйте следующее:

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