使用 Sinon 存根 get 方法

Stubbing a get method using Sinon

我正在尝试对具有属性的对象的 get 方法进行存根,

工作正常:

sinon.stub(input.model, 'get');
input.model.get.returns(10);

但考虑我们是否需要在对象中添加一些特定的 属性,

例如:

input.model.get('yourValue') 

↪ 这怎么能打桩呢?有什么想法吗?

stub.withArgs() 应该做你想做的。参见 http://sinonjs.org/docs/#stubs

sinon.stub(input.model, 'get').withArgs('yourValue').returns(10);

Sinon 从 changed 开始就有这个语法:

class Foo {
  get bar() { 
    return 'yolo'; 
  }
}

const myObj = new Foo();

sinon.stub(myObj, 'bar').get(() => 'swaggins');

myObj.bar; // 'swaggins'