gpt4 book ai didi

javascript - 在测试环境中触发 this.props.dispatch

转载 作者:行者123 更新时间:2023-11-29 19:04:35 25 4
gpt4 key购买 nike

你好,我有一个像这样的 Jest/Enzyme 测试:

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')
})

还有一个看起来像这样的组件:

<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>

点击 input 会调用此方法:

this.props.dispatch(update(data))

它在我的浏览器中工作正常,但是在测试 onClick 事件时我得到这个错误:

TypeError: this.props.dispatch is not a function

如何让 this.props.dispatch 在我的测试中工作?

谢谢

最佳答案

您需要在测试中将 dispatch 作为 prop 传递。

修改后的代码:

it('triggers checkbox onChange event', () => {
const configs = {
default: true,
label: 'My Label',
element: 'myElement',
}

const dispatch = jest.fn();

const props = {
configs,
dispatch
}
const checkbox = shallow(
<CheckBox
{...props}
/>
)
checkbox.find('input').simulate('click')
expect(dispatch).toHaveBeenCalledWith(update(data))
})

关于javascript - 在测试环境中触发 this.props.dispatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43945370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com