我正在编写一个模仿组件上的click事件的测试。 我的组件下面有一行
<Button name="1" clickHandler={this.handleClick} />
正在测试
it('Test Button component', () => {
it('Test click event', () => {
const mockCallBack = jest.fn();
const button = shallow((<Button onClick={mockCallBack}>1</Button>));
button.find('button').simulate('click');
expect(mockCallBack.mock.calls.length).toEqual(1);
});
});
但是当我运行测试时,它给了我一个错误
TypeError: this.props.clickHandler is not a function
任何人都可以帮助我,因为我应该如何模仿点击。
答案 0 :(得分:0)
尝试以下代码(我没有对其进行测试),bur基本直接在包装器上使用.simulate()
并使用.toHaveBeenCalled()
。
it('should test Button component', () => {
it('shoud test click event', () => {
const mockCallBack = jest.fn();
const button = shallow((<Button onClick={mockCallBack}>1</Button>));
button.simulate('click');
expect(mockCallBack).toHaveBeenCalled()
});
});