У меня есть класс, который в качестве функции инициализации создает экземпляр класса.
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 и вместо этого возвращать шпиона?