所以我知道在sinon你可以走
sinon.stub(class.prototype, 'method').callsFake(() => {
... some logic here ...
});
但是,我需要对整个类进行存根,而不仅仅是对它的一种方法。理想情况下,我想做类似的事情:
sinon.stub(class.prototype, myClassObjectHere);
是否可以用Sinon做到这一点?
感谢您的帮助和解答,但我知道人们会问为什么要这样做。没有别的办法了。原因是此类。我存根的方法并不总是返回相同的值。基于将哪些参数传递给构造函数...存根方法需要调用该类上其他几个方法之一。从我的存根方法中,我看不到其他方法。谢谢您的帮助
答案 0 :(得分:0)
您可以使用sinon.createStubInstance()
,使用给定的函数作为原型创建一个新对象,并对所有已实现的函数进行存根。
var stub = sinon.createStubInstance(MyConstructor, overrides);
overrides是覆盖创建的存根的可选地图,例如:
var stub = sinon.createStubInstance(MyConstructor, {
foo: sinon.stub().returnsThis()
});