Я хочу протестировать Vue отдельный файловый компонент, который получает реквизит в качестве входных данных. Когда я высмеиваю опору, которая является объектом, я получаю сообщение об ошибке, что объект не определен. Ошибка возникает из HTML, где используются значения объекта. Если я сделаю реквизит, например, строкой (и удаляю answer.value
и :class="{'active': answer.selected}"
из HTML), все будет работать нормально.
Компонент:
<template>
<div class="answer-container" @click="setActiveAnswer()" :class="{'active': answer.selected}">
<div class="answer">
<p>{{answer.value}}</p>
</div>
</div>
</template>
<script>
export default {
name: 'Answer',
props: {
answer: Object,
},
methods: {
setActiveAnswer() {
this.$emit('selectedAnswer', this.answer);
}
}
}
</script>
Тест file:
import { mount } from '@vue/test-utils'
import Answer from './../../src/components/Answer'
describe('Answer', () => {
it('should receive "answer" as prop', () => {
const answer = {
value: 'testAnswer',
selected: true
};
const wrapper = mount(Answer, {
propsData: {
answer: answer
}
});
expect(wrapper.props().answer.value).toBe('testAnswer');
})
})
Я получаю ошибку:
TypeError: Невозможно прочитать свойство 'selected' из неопределенного
Пожалуйста, сообщите, что я делаю неправильно. Спасибо!