Я новичок в React и Jest, и я пытаюсь протестировать свою функцию goBack()
, но каждый раз, когда я использую jest.spyOn
, мне постоянно говорят, что это не функция. У кого-нибудь есть решение для этого?
Я использовал spyOn
метод, чтобы попытаться шпионить за методом, но он продолжает давать мне неопределенный
Вот мой компонент класса:
class Contribute extends React.Component {
goBack = () => {
this.props.history.goBack();
};
render() {
return (
<div className="no-navbar">
<div className="col-lg-6 pledge-pane pledge-pane-lg" id="imageMobile">
<div className="mx-2 container" id="back-button-mobile">
<button className="btn btn-outline-secondary btn-circle" onClick={this.goBack}>
<i className="fa fa-arrow-left"> </i>
</button>
</div>`
Вот мой тестовый файл для функции goBack:
it('test onClick function', () => {
let props = {
history:{
goBack: jest.fn()
}
};
const spy = jest.spyOn(Contribute.prototype, 'goBack');
const wrapper = mount(<Contribute {...props}/>);
Contribute.find('#back-button-mobile').simulate('click', {
preventDefault: () => {
}
});
expect(spy).toHaveBeenCalled();
console.log(spy);
});
Когда я запускаю свой тестовый файл, это результат:
Error: Cannot spy the goBack property because it is not a function; undefined given instead