我正在使用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)}
我觉得应该有一个更好的方法。