【问题标题】:Mocha Sinon Change ConstructorMocha Sinon 变更构造函数
【发布时间】:2021-04-14 21:33:22
【问题描述】:

在测试期间有代码不应该在构造函数内部执行。由于我是诗乃的新手,我认为我可以做到。我为此准备了下面的示例代码。

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

【问题讨论】:

    标签: node.js mocha.js sinon


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2017-11-01
      • 1970-01-01
      • 2013-01-12
      • 2016-05-22
      • 2013-01-25
      • 1970-01-01
      相关资源
      最近更新 更多