我正在使用带有JEST和Enzyme的React 16.3作为我的测试实用程序,我有一个输入,当用户输入电子邮件并模糊该字段时,会调用一个函数(handleInputBlur)。在该函数中,我正在更新状态(setState)和setState()
回调,在调用另一个函数并传递最初传递给handleInputBlur
的事件。
现在,据我所知,由于setState
是异步的,React不允许在setState的回调中传递事件。因此,我添加了event.persist()
以保留该事件。到目前为止一切正常。
当我尝试运行我编写的JEST测试用例并在输入上模拟blur
时,它会调用该函数,但会引发错误:
TypeError: e.persist is not a function
我无法理解要解决此问题的确切方法。
答案 0 :(得分:1)
模拟事件时,您可以向其传递模拟事件对象
wrapper.find('a').simulate('blur', { persist: jest.fn()});