Sai
Sai

Reputation: 2032

Stubbing a get method using Sinon

I'm trying to stub the get method of an object with properties,

Works fine:

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

but consider if we need to stub some specific property in the object,

eg:

input.model.get('yourValue') 

↪ how this can be stubbed? Any idea?

Upvotes: 12

Views: 8762

Answers (1)

dawner
dawner

Reputation: 468

stub.withArgs() should do what you want. See http://sinonjs.org/docs/#stubs.

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

Sinon has since changed this syntax:

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

const myObj = new Foo();

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

myObj.bar; // 'swaggins'

Upvotes: 20

Related Questions