在测试期间,有一些代码不应该在构造函数内部执行。由于我是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/