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,但我不知道如何做到这一点。
谢谢