Я понял, что здесь не так.Пожалуйста, дайте мне знать, если у вас есть лучшее решение.
1) Я должен шпионить за своей функцией, прежде чем создавать свою оболочку
2) Я не могу использовать функции стрелок в качестве методов в моем классе
Page.jsx
class Page extends React.Component {
constructor(props) {
super(props);
this.handlePageClick = this.handlePageClick.bind(this);
}
handlePageClick(e) {
console.log('page click!!');
}
render() {
return(
<div className='at-page' onClick={this.handlePageClick}>
{this.props.children}
</div>
);
}
}
export default Page;
Page.test.js
...
it('page should listen for click events', () => {
const spy = jest.spyOn(Page.prototype, 'handlePageClick');
const wrapper = mount(<Page><div>Hello Page</div></Page>);
const page = wrapper.find('.at-page');
page.prop('onClick')();
expect(spy).toHaveBeenCalled();
}
...