使用Sinon对get方法进行存根

Sai*_*Sai 5 javascript unit-testing sinon

我正在尝试使用属性存根对象的get方法,

工作良好:

sinon.stub(input.model, 'get');
input.model.get.returns(10);
Run Code Online (Sandbox Code Playgroud)

但考虑一下我们是否需要在对象中存根某些特定属性,

例如:

input.model.get('yourValue') 
Run Code Online (Sandbox Code Playgroud)

↪这怎么可以被打断?任何的想法?

小智 10

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

sinon.stub(input.model, 'get').withArgs('yourValue').returns(10);
Run Code Online (Sandbox Code Playgroud)

Sinon后来改变了这种语法:

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

const myObj = new Foo();

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

myObj.bar; // 'swaggins'
Run Code Online (Sandbox Code Playgroud)

  • 现在,您还可以执行 `sinon.stub(myObj, 'bar').value('swaggins')`。 (6认同)
  • 2022 年更新。我来这里寻找一种方法来存根 cypress 的吸气剂(它在引擎盖下使用 sinon )。接受的答案对我不起作用。@PaulRazvanBerg 做到了。救星:D (2认同)