如何在JavaScript中模拟构造函数调用

我如何在派生类中模拟创建父类的构造函数。

这是我正在测试的示例。

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