У меня есть тест кейс для Реакт компонента
class SomeComponent extends Component {
constructor() {
super()
this.state = {
height: 0,
width: 0
}
this.updateDimensions = this.updateDimensions.bind(this);
}
componentDidMount(){
window.addEventListener("resize", this.updateDimensions);
this.updateDimensions();
}
updateDimensions(dimensions) {
this.setState({
height: dimensions.height,
width: dimensions.width
})
}
}
}
Я написал такой тест
test("dimensions update correctly", () => {
let wrapper = shallow(<SomeComponent/>)
let instance = wrapper.instance();
jest.spyOn(instance, 'updateDimensions');
instance.componentDidMount();
expect(instance.updateDimensions).toHaveBeenCalledTimes(1);
})
при запуске теста выводится такая ошибка:
Cannot spy on updateDimensions property because it is not a function; undefined given instead.
Почему выводится undefined?
И я так понимаю, так как это мокает функцию я не смогу сделать ассерт новых height и width