#javascript #unit-testing #vue.js #jestjs #vue-test-utils
#javascript #модульное тестирование #vue.js #jestjs #vue-test-utils
Вопрос:
Я пытаюсь протестировать метод компонента, который добавляет новую запись к уже существующему объекту.
addTag: function () {
this.value[this.field.key].push(this.tag)
this.tag = ''
}
Я просто пытаюсь вызвать этот метод внутри моего теста через
wrapper.setProps({
field: {
key: 'tag'
},
value: {
tag: {}
}
})
...
wrapper.vm.addTag()
но он выдает и ошибку
TypeError: this.value[this.field.key].push is not a function
Я заранее установил все необходимые данные и реквизиты (поле.ключ и тег), так что это не проблема. запуск других методов работает полностью нормально, push
похоже, проблема
Ответ №1:
Это потому this.value['tag']
, что это объект, а не массив, поэтому push
метода нет.
Определение его как массива вместо этого изменило бы это:
wrapper.setProps({
field: {
key: 'tag'
},
value: {
tag: []
}
})