将事件对象传递给酶模拟

【字号: 日期:2024-04-17浏览:15作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决将事件对象传递给酶模拟?

simulate函数采用其他参数,这些参数将传递给事件处理程序。您可以嘲笑事件。例如:

const mockedEvent = { target: {} }checkBox.find(’input’).simulate(’click’, mockedEvent)解决方法

我正在使用Jest和Enzyme来测试React复选框组件。

这是我的测试:

it(’triggers checkbox onChange event’,() => { const configs = { default: true,label: ’My Label’,element: ’myElement’,} const checkbox = shallow( <CheckBox configs={configs} /> ) checkbox.find(’input’).simulate(’click’)})

但是在运行测试时出现此错误:

TypeError: Cannot read property ’target’ of undefined

这是我的组件的输入:

<div className='toggle-btn sm'> <input id={this.props.configs.element} className='toggle-input round' type='checkbox' defaultChecked={ this.props.defaultChecked } onClick={ e => this.onChange(e.target) } > </input></div>

我 想那我需要通过一个事件作为第二个对象simulate,但我不知道如何做到这一点。

谢谢

相关文章: