我有一个返回函数引用的方法。
function methodetobeMoked(param){
case1:return func1;
case 2: return func2;
.
.
case n: return funcN;
}
我需要监视此方法并返回特定输入参数的假函数引用
茉莉花测试中是否有任何条件调用 我的方案是
SpyOn(some object,'someMethode').and.{if param=p callFake(fakeMethode) else callThrough()}
我试过callFake有没有办法从伪方法将控制传递给原始方法?
答案 0 :(得分:6)
Jasmine间谍将原始函数保留在名为originalValue
的属性中,因此您可以执行以下操作:
var mySpy = {};
mySpy = t.spyOn(obj, 'methodToBeMocked').and.callFake(function (param) {
if (param === 'fake case') {
// return fake result
} else {
// do this if using Jasmine
return (mySpy.and.callThrough())(param);
// do this if using Ext + Siesta and duped by common syntax :)
// return mySpy.originalValue(param);
}
});