我有一个问题,除非使用spyOn
关键字,否则茉莉花的this
无效。
我有一个具有2个功能的脚本:
function fn1(){
return fn2()
}
function fn2(){
return 5;
}
我想在不调用fn1
的情况下测试fn2
,所以我将两个函数都导出到module.exports
中,然后使用spyOn
模拟fn2
var myScript = require('...');
spyOn(myScript, 'fn2').and.callFake(function(){
return 15;
});
问题是,原始的fn2
仍被调用(返回5),并且忽略了间谍。 但是,如果我将fn1
的实现更改为
function fn1(){
return this.fn2()
}
然后间谍工作并返回15。添加this
没什么大不了的,我只是想知道为什么首先需要它。