0
的函數調用我有以下的代碼結構:茉莉花:刺探其他模塊
const finalCall = require('./final.js');
function Func(){
this.process = {
initCall: function(params, callback){
let proParams;
//processing...
return finalCall(proParams, callback);
}
}
}
現在我需要測試,如果我的initCall
功能正確處理params
,使呼叫finalCall
。我需要知道如何在我的finalCall
函數上創建間諜,所以當它被調用時,我可以跟蹤proParams
。 我已經試過類似:
const func = new Func();
let proParams = null;
spyOn(func.process.initCall, "finalCall").and.callFake(function(pParams, callback){
proParams = pParams;
});
let params = { };
func.process.initCall(params, null);
expect(func.process.initCall.finalCall).toHaveBeenCalled();
expect(proParams).toEqual('...');
我缺少什麼目標,我可以訪問finalCall,或是否有另一種方式來做到這一點。提前致謝。
看看[proxyquire](https://github.com/thlorenz/proxyquire) - 它允許模擬模塊(需要調用) –
來自ES6,這是因爲你有一個名爲'const'的變量,然後使用'const'來設置th e'params'變量。如果你要做ES6,一直這樣做,並使用'let'和'const'而不是'var'。特別是如果你要創建一個名爲'const'的變量。這是堅果。 – coblr