sinon不会破坏财产价值

时间:2017-11-21 23:05:09

标签: sinon stub

我正在使用sinon v4.1.2。根据文档(http://sinonjs.org/releases/v4.1.2/sandbox/),我应该能够使用以下内容设置属性:

sandbox.stub(myObject, 'hello').value('Sinon');

但是,我收到错误:

  

'SinonStub'

类型中不存在属性'value'

这样做的真正方法是什么?我查看了所有可用的函数,并尝试了returnValue,但这也不是一个有效的函数。

以下是正在使用旧版本的sinon:

sandbox.stub(myObject, 'hello', 'Sinon');

2 个答案:

答案 0 :(得分:9)

这适用于Sinon.JS v4.1.2:

myObject = {hello: 'hello'}
sandbox = sinon.createSandbox()
sandbox.stub(myObject, 'hello').value('Sinon')
myObject.hello // "Sinon"
sandbox.restore()
myObject.hello // "hello"

答案 1 :(得分:0)

以我的经验,不必每次都创建一个沙箱。您可以使用不带存根的存根来减少代码的复杂性。 只需这样定义一个存根:

const stubHello = sinon.stub(myObject, 'helloFunction');

然后您将拥有所有存根功能!