首页 > 解决方案 > 如何使用酶在 ReactJS 中为窗口 keydown 事件添加单元测试

问题描述

我的 React 组件中有以下代码。按转义键时,应调用 unfocus 道具功能。我该如何测试这个?我正在使用笑话和酶。

reactjs酶测试

谢谢您的帮助

标签: reactjsunit-testingjestjsenzyme

解决方案


为了更好地控制测试,我建议将 mousedown 事件逻辑作为道具函数传递。

然后,在您的规范中安装组件后,您可以测试为 -

test('should toggle focus', () => {
  const map = {};
  window.addEventListener = jest.genMockFn().mockImpl((event, cb) => {
    map[event] = cb;
  });

  const component = mount(<SomeComponent />);
  map.keyDown({ keyCode: 27 });
  expect(props.unfocus).to.have.been.called;
});

有用的链接——

模拟 KeyDown 事件

在窗口上模拟事件


推荐阅读