Mocha Sinon更换施工人员



在测试期间,有一些代码不应该在构造函数内部执行。由于我是Sinon的新手,我想我可以接受它。我为此准备了下面的示例代码。

Person.js

class Person {
constructor() {
console.log("From constructor");
}
}

测试库:app.spec.js

const sinon = require('sinon');
const { Person } = require('../Person');
describe('Person', () => {
it('Test1', () => {
const costructorSpy = sinon.spy(Person.prototype, 'constructor');
new Person();
});
});

但我仍然在终端上看到控制台消息From constructor

如果您想替换构造函数行为,请用存根而不是间谍替换它。对此使用sinon的createStubInstance((方法

const sinon = require('sinon');
const { Person } = require('../Person');
describe('Person', () => {
it('Test1', () => {
const replacedConstructor = sinon.createStubInstance(Person).returns();
new Person();
});
});

这方面的文档写在这里https://sinonjs.org/releases/v9.2.3/stubs/

最新更新