Ответ 1
Функция 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
но я не уверен, как это сделать.
благодаря
Функция simulate
принимает другие аргументы, которые будут переданы обработчику событий. Вы можете издеваться над своим событием. Например:
const mockedEvent = { target: {} }
checkbox.find('input').simulate('click', mockedEvent)