【发布时间】:2019-05-31 05:08:57
【问题描述】:
我正在尝试测试formik的一些select元素,但Simulate change不起作用。
而对于 formik 的输入元素,相同的模拟更改效果很好。
组件:
<Field
type="text"
name={'clientsData.language1_id'}
className={this.props.classes.textField}
label="Primary Language"
select
margin="normal"
variant="outlined"
component={TextField}
InputLabelProps={{
shrink: true
}}>
}}>
{this.props.languages.map(val => (
<MenuItem key={val.id} value={val.id}>
{val.value}
</MenuItem>
))}
</Field>
安装包装器:
wrapper = mount(
<Router history={hist}>
<ClientsContacts
clientsData={clientsData}
languages={languages}
gender={gender}
race={race}
genders_identified={genderIdentified}
actions={{ getDictionaryApiCall: mockGetDictionaryApiCall, getListApiCall: mockGetListApiCall }}
/>
</Router>
)
模拟更改和一些控制台日志以便更好地理解:
console.log(
wrapper
// .find('Select')
.find('input')
.at(6)
.debug()
)
wrapper
.find('input')
.at(6)
.simulate('change', { target: { value: '122344556644', name: 'clientsData.language1_id' } })
console.log(
wrapper
.find('input')
.at(6)
.props()
)
console.log 截图:
上面的控制台日志截图显示,即使在模拟更改后,值也没有改变。
【问题讨论】:
标签: javascript reactjs jestjs enzyme formik