测试构造函数使用Sinon调用方法

Det*_*ned 0 javascript unit-testing mocha.js sinon

我想确保构造函数在用Sinon实例化时正在调用一个方法,但是,我似乎无法使它正常工作,因为我相信sinon不会监视正确的实例化:

class Test {
  constructor() {
    this.someFunction();
  }

  someFunction() {
    return 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

...和测试

describe('constructor', () => {

  it('should call someFunction()', () => {
    const spyFunc = new Spy(new Test(), 'someFunction');
    expect(spyFunc.calledOnce).to.be.true;
  });

});
Run Code Online (Sandbox Code Playgroud)

Les*_*kov 5

Test.prototype.someFunction在调用构造函数之前,先尝试监视一下。像这样

sinon.spy(Test.prototype, 'someFunction')
const spyFunc = new Test();
expect(spyFunc.someFunction.calledOnce).to.be.true;
Run Code Online (Sandbox Code Playgroud)