我目前正在学习 React-Testing-Library。
我想测试鼠标与元素的交互。目前我还不清楚 userEvent.click(element) 和 fireEvent.click(element) 之间的区别。两者都建议使用吗?在下面的示例中它们是否得到了正确实施?
const mockFunction = jest.fn(() => console.info('button clicked'));
const { getByTestId } = render(<MyAwesomeButton onClick={mockFunction} />);
const myAwesomeButton = getByTestId('my-awesome-button');
// Solution A
fireEvent(myAwesomeButton)
expect(mockFunction.toHaveBeenCalledTimes(1);
// Solution B
userEvent.click(myAwesomeButton);
expect(mockFunction).toHaveBeenCalledTimes(1);
预先感谢您的澄清。
在幕后,userEvent
使用fireEvent
。你可以考虑fireEvent
是低级 api,同时userEvent
设置动作流程。
这是代码userEvent.click https://github.com/testing-library/user-event/blob/5feaa942f46bb37d96c2f2fbeb4b33e8beff75ad/src/click.js#L87-L103
您可以看到,根据您尝试单击的元素,userEvent
将执行一组不同的操作(例如,如果它是标签或复选框)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)