reactjs - 在react-testing-library中按回车键提交表单不起作用

标签 reactjs forms events jestjs react-testing-library

描述:

我正在尝试测试当用户按“Enter”键时表单是否提交。我对按下 Submit 按钮时进行了通过测试,但我还想确保使用键盘提交表单(方便且方便)。

代码:

test("should submit when pressing enter", () => {
  const handleSubmit = jest.fn();
  const { getByLabelText } = render(<App handleSubmit={handleSubmit} />);
  const input = getByLabelText("Name:");

  fireEvent.change(input, { target: { value: "abc" } });
  fireEvent.keyPress(input, { key: "Enter", code: 13, charCode: 13 });

  expect(handleSubmit).toHaveBeenCalled();
});

这是一个CodeSandbox所需的代码量最少。

最佳答案

不太清楚交互的来源是什么,但是可以在 input 上调用 submit 并且它似乎修复了沙箱:

fireEvent.submit(input);

关于reactjs - 在react-testing-library中按回车键提交表单不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59362804/

相关文章:

javascript - 为什么我的 useEffect 中仍然存在过时的数据?

python - Pygame- 创建更多 USEREVENT 类型事件的方法?

javascript - 将键盘事件与文本区域一起使用

javascript - 是否可以在不包括 Jquery 中的嵌套元素的元素上注册点击?

javascript - Firebase 时间戳返回错误日期 - Javascript

javascript - 如何使用 React Hooks 传递函数?

php - 仅在提交时使用 javascript 保存表单状态

javascript - 需要一个不关心输入的字符是否少于 6 个的正则表达式

reactjs - 我的 Reactjs 代码显示未捕获的 TypeError : Cannot read property 'value' of null

django - 你如何使 Django 表单验证动态化?