开玩笑给TypeError

时间:2019-03-18 22:42:17

标签: javascript jestjs enzyme

我正在编写一个模仿组件上的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

任何人都可以帮助我,因为我应该如何模仿点击。

1 个答案:

答案 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()
    });
  });