event.persist不是函数-JEST&Enzyme

时间:2019-05-09 05:55:46

标签: javascript reactjs react-redux jestjs enzyme

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

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

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

TypeError: e.persist is not a function

我无法理解要解决此问题的确切方法。

1 个答案:

答案 0 :(得分:1)

模拟事件时,您可以向其传递模拟事件对象

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