【发布时间】:2020-06-12 18:11:55
【问题描述】:
我不知道如何测试按键事件和防止默认值。测试到达代码但从未调用过preventDefault:Received number of calls: 0
React 组件 - App.js
const onKeyDown = e => {
console.log("==== TEST REACHED HERE ====")
e.preventDefault(); // NEVER CALLED ???
};
useEffect(() => {
document.addEventListener("keydown", onKeyDown, false);
return () =>
document.removeEventListener("keydown", onKeyDown, false);
}, []);
单元测试
it("should prevent default action on key down", () => {
const { getByRole } = render(<App {...props} />);
const grid = getByRole("app");
const mockEvent = { preventDefault: jest.fn() };
fireEvent.keyDown(grid, mockEvent);
expect(mockEvent.preventDefault).toHaveBeenCalledTimes(1);
});
【问题讨论】:
-
测试失败前是否记录了
TEST REACHED HERE? -
您能否提供在您的
App.js组件中返回的JSX?
标签: reactjs unit-testing jestjs react-testing-library