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