@uabylbekov

Как протестировать функцию которая должна сработать при componentDidUpdate и componentDidMount?

У меня есть тест кейс для Реакт компонента
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
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы