Вызов конструктора Sinon / Chai Mock изнутри функции - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть класс, который в качестве функции инициализации создает экземпляр класса.

export default classA {
    constructor() {
        this.initialState = "starting";
    }

    getInitialState() { return this.initialState; }
}

class Manager {
    ...
    initializeClassA(data) {
        const aState = new ClassA();
        ....
    }
}

В моем менеджере тестовый класс

it('initializes class A', () => {
    const data = {...};
    manager.initializeClassA(data);
    expect(myClassASpy).to.have.been.called.once;
});

Оглядываясь вокруг, я видел разные варианты, такие как:

const classASpy = sinon.spy(window, 'classA')
const classASpy = sinon.spy(global, 'classA')
const classAStub = sinon.createStubInstance(classA);

Я также видел предложения по передаче объекта classA для вызова инициализации, но ничего из этого не работает.

Можно ли издеваться над экземпляром classA в классе Manager и вместо этого возвращать шпиона?

...