【问题标题】:event.persist is not a function - JEST & Enzymeevent.persist 不是函数 - JEST 和 Enzyme
【发布时间】:2019-09-26 21:51:12
【问题描述】:

我使用带有 JEST 和 Enzyme 的 React 16.3 作为我的测试实用程序,我有一个输入,当用户输入电子邮件并模糊该字段时,会调用一个函数 (handleInputBlur)。在该函数中,我正在更新状态 (setState) 和 setState() 回调,我正在调用另一个函数并将最初传递给 handleInputBlur 的事件传递给。

现在据我了解,由于 setState 是异步的,React 不允许在 setState 的回调中传递事件。所以,我添加了event.persist() 来保持这个事件。到目前为止一切正常。

当我尝试运行我编写的 JEST 测试用例并在输入上模拟 blur 时,它会调用该函数但会引发错误:

TypeError: e.persist is not a function

我无法理解要解决这个问题究竟要做什么。

【问题讨论】:

  • 不看代码,很难找到你的错误原因。请添加代码。

标签: javascript reactjs react-redux jestjs enzyme


【解决方案1】:

当你模拟事件时,你可以像传递一个模拟事件对象给它

wrapper.find('a').simulate('blur', { persist: jest.fn()});

【讨论】:

  • 很高兴能帮上忙
猜你喜欢
  • 2017-06-25
  • 2019-10-16
  • 1970-01-01
  • 1970-01-01
  • 2019-01-24
  • 1970-01-01
  • 2020-03-28
  • 2019-12-09
  • 2020-02-02
相关资源
最近更新 更多