在sinon中存储嵌套函数调用

时间:2016-03-24 10:52:56

标签: javascript unit-testing mocking sinon stubbing

有三个单独的问题与此类似,但它们都不像我的情况。

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

svg.icon{
        fill:red
       }

在我的单元测试中,我希望能够创建myfunc2的存根。基本上我需要能够存根作为嵌套存根的存根。我目前使用这种手动存根,但如果有办法,我宁愿使用sinon存根。

var myfunc ( func_outer ) {
    return func_outer().func_inner();
}

有没有人遇到过这种情况。有没有简单的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

sinon documentation,您可以查看退货部分

  

stub.returns(OBJ);
    使存根返回提供的值。

您可以尝试以下操作:

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

func_innerStub = sinon.stub().returns('mockResponse')  

然后将你的外部函数存根并使其返回带有存根内部函数的对象。

func_outerStub = sinon.stub().returns({func_inner: func_innerStub})

您也可以使用 myfunc 函数来跟随此模式,并将其作为参数传递给func_outerStub。