摩卡诗浓变化构造函数

时间:2021-01-09 10:18:31

标签: node.js mocha.js 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

1 个答案:

答案 0 :(得分:0)

如果您想替换构造函数行为,请将其替换为存根,而不是间谍。为此使用 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/

相关问题