Попытка проверить, правильно ли вызывается следующая функция.
Вот функция, использующая Jest и Enzyme для React Js:
changeCurrentColumn = (e) => {
{
if (e.target.value !== 'default')
{
const id = e.target.value
const name = this.props.defaultData[e.target.value].caption
this.props.setCurrentColumn({ name, id })
}
}
}
Вот тест:
it('changeCurrentColumn function test', () => {
wrapper.setProps({
defaultData:[{
caption:"test"
},],
}),
wrapper.update();
Ошибка указывает на ({target:'test'})) :
expect(wrapper.instance().changeCurrentColumn({target:'test'})).toBeDefined();
})
Что я могу добавить после «теста», чтобы прочитать свойство «заголовок»?
Спасибо.
Не должно быть changeCurrentColumn({target:{value:'test'}})?
Кроме того, ваш props.defaultData представляет собой массив, поэтому props.defaultData[e.target.value] будет работать, только если e.target.value является числом. Поскольку вы сравниваете его с «по умолчанию», это не похоже на число...
@iLiA опечатка, забыл стереть
@Vinicius правильно признал, что вы используете props.defaultData[e.target.value], и это будет работать только с объектами (обозначение скобок)\
Я пытался применить это раньше, но мой тест не прошел. Я использовал ответ, представленный ниже, и теперь он работает. Спасибо
Это здорово, если это работает!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете изменить тип объекта defaultData на что-то вроде этого.
it('changeCurrentColumn function test', () => {
const event = {
target: {
value: "caption"
}
}
wrapper.setProps({
defaultData:{
caption:"test"
},
}),
wrapper.update();
expect(wrapper.instance().changeCurrentColumn(event)).toBeDefined()
});
или передайте значение как 0, чтобы получить отдых от существующих данных по умолчанию.
it('changeCurrentColumn function test', () => {
const event = {
target: {
value: 0
}
}
wrapper.setProps({
defaultData:[{
caption:"test"
}],
}),
wrapper.update();
expect(wrapper.instance().changeCurrentColumn(event)).toBeDefined()
});
зачем ты ставишь запятую после
}то естьwrapper.setProps({ defaultData:[{ caption:"test" }, //this