Jest和Sinon:我该如何补习整个课程?

时间:2018-12-10 22:57:39

标签: jestjs sinon

所以我知道在sinon你可以走

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

但是,我需要对整个类进行存根,而不仅仅是对它的一种方法。理想情况下,我想做类似的事情:

sinon.stub(class.prototype, myClassObjectHere);

是否可以用Sinon做到这一点?

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

1 个答案:

答案 0 :(得分:0)

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

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

overrides是覆盖创建的存根的可选地图,例如:

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