通过fireEvent发送价值

时间:2020-07-17 15:33:40

标签: reactjs testing jestjs react-testing-library

我正在使用fireEvent中的@testing-library/react。 我声明了一个react组件,如下所示:

const CustomParamTest = () => {
  onButtonClick(customParam) {
    console.log(customParam);
  }

  return (
    <>
      <button 
        data-testid="custom-param-button" 
        onClick={(customParam) => onButtonClick(customParam) }
      >
        Custom param
      </button>
    </>
  );
}

我有这个测试:

describe('basic test', () => {
  test('items should be empty', () => {
    const { getByTestId } = render(<CustomParamTest />);

    const customButton = getByTestId('custom-param-button');
    fireEvent.click(customButton);
  });
});

我想要实现的是发送带有click事件的自定义参数,如下所示:

fireEvent.click(customButton, myCustomParameter);

我想访问myCustomParameter函数中的onButtonClick。我可以按照以下方式工作,但是我想要一个更好的解决方案:

我创建了一个这样的自定义点击事件:

const customEvent = createEvent.click(customButton, { button: 2 });
customEvent.myCustomProp = 'customValue';
fireEvent.click(customButton, customEvent);

在我的组件中,我可以这样访问此值:

onClick={(e) => console.log(e.nativeEvent.myCustomProp)}

我觉得应该有一个更好的方法。

0 个答案:

没有答案