jasmine.createSpy().and.callFake(fn) 在 sinonjs 中的等价物是什么

What's the equivalent of jasmine.createSpy().and.callFake(fn) in sinonjs

我正在寻找 sinonjs 中 jasmine.createSpy().and.callFake(fn) 的等价物。

例如:

const mySpy = jasmine.createSpy('my spy')
.and
.callFake((options) => Object.assign({}, {name: 'foo'}, options));

据我从 Jasmine 文档中了解到,这应该做类似的事情:

const mySpy = sinon.spy((options) => Object.assign({}, {name: 'foo'}, options))

这应该有效:

var stub = sinon.stub(object, "method", func);

看看这个:http://legacy.sinonjs.org/docs/

可以修改 return 值(可选包装函数)的间谍在 Sinon 的说法中称为 stub,所以你要找的是 is the documentation on stubs。您的示例如下所示:

const myStub = sinon.stub().callsFake((options) => Object.assign({}, {name: 'foo'}, options));

console.log(myStub().name === 'foo') // => 'true'

披露:我是 Sinon 维护团队的一员。