我正在使用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');
答案 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');
然后您将拥有所有存根功能!