【问题标题】:Jest and Sinon: how do I stub an entire class?Jest 和 Sinon:我如何存根整个班级?
【发布时间】:2018-12-10 22:57:39
【问题描述】:

所以我知道在西农你可以去

sinon.stub(class.prototype, 'method').callsFake(() => {
  // ... some logic here ... 
});

但是,我需要存根整个类,而不仅仅是一个方法。理想情况下,我想做这样的事情:

sinon.stub(class.prototype, myClassObjectHere);

有没有办法用诗乃做到这一点?

感谢您的帮助和回答,但我知道人们会问为什么需要这样做。没有其他办法。原因是我存根的这个 class.method 并不总是返回相同的值。基于传递给构造函数的参数......存根方法需要调用类上的其他几个方法之一。从我的存根方法来看,我看不到其他方法。感谢您的帮助

【问题讨论】:

    标签: jestjs sinon


    【解决方案1】:

    您可以使用sinon.createStubInstance(),使用给定函数创建一个新对象作为原型并存根所有已实现的函数。

    var stub = sinon.createStubInstance(MyConstructor, overrides);
    

    overrides 是覆盖已创建存根的可选映射,例如:

    var stub = sinon.createStubInstance(MyConstructor, {
        foo: sinon.stub().returnsThis()
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-28
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2020-03-31
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      相关资源
      最近更新 更多