如何用酶在ReactJS中添加窗口keydown事件的单元测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用酶在ReactJS中添加窗口keydown事件的单元测试相关的知识,希望对你有一定的参考价值。

我的React组件中有以下代码。在按下退出键时,应调用非聚焦道具功能。我该如何测试?我正在使用开玩笑和酶。

reactjs enzyme test

谢谢您的帮助

答案

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

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

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;
});

有用的链接 -

Simulate KeyDown Event

Simulate Events on window

以上是关于如何用酶在ReactJS中添加窗口keydown事件的单元测试的主要内容,如果未能解决你的问题,请参考以下文章

如何用js或jquery实现点击事件触发键盘

如何用reactjs修复“预计在箭头函数中返回一个值”?

ReactJs 上下文 - 如何用传入的状态替换当前组件状态

如何用delphi获取键盘扫描码及模拟键盘组合键

如何用reactjs构建一个完整的前端页面

如何用reactjs构建一个完整的前端页面