Ich versuche, Jasmin-Tests für ein Modul zu schreiben (sagen wir ModulA), die ein anderes Modul- (ModulB) "erfordert".Wie eine Methode in einem abhängigen Modul mit Jasmine-Knoten ausspionieren
======> moduleB.js
function moduleBFunction(){
console.log('function inside moduleB is called');
}
======> moduleA.js
var moduleB = require('./moduleB');
function moduleAfunction(input){
if(input){
moduleB.moduleBFunction()
}
}
Ich möchte ein Jasmin Testfall schreiben, wenn ich Tests Rufen Sie moduleAfunction auf, ruft sie moduleBfunction auf oder nicht. Ich habe versucht, einen Test mit spyOn() zu schreiben. aber ich bin mir nicht sicher, wie ich eine Methode in einem abhängigen Modul vortäuschen kann. Ich habe einige Nachforschungen und fand ich in der Lage sein könnte, wie unter
var moduleB = require('../moduleB');
moduleB.__set__('moduleBfunction', moduleBfunctionSpy);
moduleA.__set__('moduleB', moduleB);
it('should call moduleBfunction', function(){
moduleA.moduleAfunction()
expect(moduleB.moduleBfunction()).toHaveBeenCalled()
});
‚rewire‘ Modul für diesen Zweck zu verwenden, aber ich fühle mich sollte es ein einfacher Weg sein.
Bitte vorschlagen.