我如何在派生类中模拟创建父类的构造函数。
这是我正在测试的示例。
myclass.js
class a {
constructor() {
console.log('i am from class a constructor');
}
foo() {
console.log('i am from class a foo method');
}
}
class b {
constructor() {
console.log('i am from class b constructor');
}
baz() {
let obj = new a();
a.foo();
console.log('i am from class b baz method');
}
}
这是我正在模拟的使用Sinon.js的单元测试。 我正在为类b-> baz()方法创建单元测试。我的期望是调用baz()方法不应调用实际的类a并且不应打印在构造函数类中的控制台。如何实现这一点。 sinon.createStubInstance()我曾经创建对象,但如何模拟构造函数?
myclass.test.js
describe('myclass' ()=> {
it('should not call class a constructor', (done) => {
let b_obj = new b()
b_obj.baz();
done()
});
})
输出上述代码的打印
i am from class a constructor
i am from class a foo method
i am from class b baz method
以上代码的预期输出
// should be mocked .. i am from class a constructor
//should be mocked .. i am from class a foo method
i am from class b baz method