Я пытаюсь написать жасминовые тесты для модуля (скажем, модуля A), который «требует» другого модуля (модуль B).
======> модульB.js
function moduleBFunction(){
console.log('function inside moduleB is called');
}
======> модульA.js
var moduleB = require('./moduleB');
function moduleAfunction(input){
if(input){
moduleB.moduleBFunction()
}
}
Я хочу написать тестовый пример жасмина, который проверяет, когда я вызываю moduleAfunction, вызывает ли он moduleBfunction или нет. Я попытался написать тест, используя spyOn(). но я не уверен, как я могу издеваться над методом внутри зависимого модуля. Я провел некоторое исследование и обнаружил, что могу использовать для этой цели модуль «rewire», как показано ниже.
var moduleB = require('../moduleB');
moduleB.__set__('moduleBfunction', moduleBfunctionSpy);
moduleA.__set__('moduleB', moduleB);
it('should call moduleBfunction', function(){
moduleA.moduleAfunction()
expect(moduleB.moduleBfunction()).toHaveBeenCalled()
});
но я чувствую, что должен быть более простой способ.
Пожалуйста, предложите.