假设我使用构造函数创建一个对象:
function MyConstructor() {
this.myMethod = () => console.log('foo');
}
const myObject = new MyConstructor();
现在在我的测试文件中,我想要存根myMethod
方法。如果我在原型上定义了myMethod
,那将非常简单。人们可以使用:
sinon.stub(MyConstructor.prototype, 'myMethod')
但是,当使用this
在构造函数中定义方法时,这不起作用,如上例所示。
这是一个难以避免的问题,因为某些第三方库以这种方式定义实例方法,即在构造函数内而不是在原型上。我们需要一种在测试时存根这种方法的方法。