Javascript 在sinon中存根嵌套函数调用

Javascript 在sinon中存根嵌套函数调用,javascript,unit-testing,mocking,sinon,stubbing,Javascript,Unit Testing,Mocking,Sinon,Stubbing,有三个独立的问题类似于这一个,但没有一个类似于我的案例 所以我基本上有一个函数,它以一个函数作为参数 var myfunc ( func_outer ) { return func_outer().func_inner(); } 在我的单元测试中,我希望能够生成myfunc2的存根。基本上,我需要能够存根一个存根,这是一个嵌套存根。我目前使用这种手动存根,但如果有办法,我宁愿使用sinon存根 const func_outer = () => { return {

有三个独立的问题类似于这一个,但没有一个类似于我的案例

所以我基本上有一个函数,它以一个函数作为参数

var myfunc ( func_outer ) {
    return func_outer().func_inner();
}
在我的单元测试中,我希望能够生成myfunc2的存根。基本上,我需要能够存根一个存根,这是一个嵌套存根。我目前使用这种手动存根,但如果有办法,我宁愿使用sinon存根

const func_outer = () => {
    return {
       func_inner: () => {return mockResponse;}
    }
};
有没有人遇到过这种情况。有没有一种简单的方法可以解决这个问题?

您可以查看退货部分

存根收益(obj)
使存根返回提供的值

您可以尝试以下操作:

首先,你应该确保你的内部函数存根,然后让它返回你想要的值

func_innerStub = sinon.stub().returns('mockResponse')  
然后存根外部函数,并使其返回带有存根内部函数的对象

func_outerStub = sinon.stub().returns({func_inner: func_innerStub})
您可以使用myfunc函数遵循此模式,并将func_outerStub作为参数传递