#vue.js #jestjs
#vue.js #jestjs
Вопрос:
У меня есть функциональный компонент Vue, в некоторых тестах используется Jest, но для этого файла значение покрытия равно 0. Это правильный способ тестирования функциональных компонентов в Vue?
это пример моего компонента
<template functional>
<div :class="['name', ...props.extraClasses]">
{{ props.itemName }}
</div>
</template>
<script>
export default {
props: {
itemName: {
type: String,
required: true,
},
extraClasses: {
type: Array,
},
},
};
</script>
Так выглядит 1 из моих тестов
test('it works correctly with all props', () => {
const wrapper = shallow(cmp, {
context: {
props: {
itemName: 'item name',
extraClasses: ['extra1', 'extra2'],
}
},
})
const name = wrapper.find('.name');
expect(name.classes()).toEqual(['name', 'extra1', 'extra2']);
expect(name.text()).toBe('item name');
});
После запуска jest я вижу, что покрытие равно 0, а непокрытые строки являются реквизитами.
Есть ли какой-либо другой способ протестировать функциональный компонент?
И как мне заставить покрытие jest корректно работать для этого тестового файла?
Спасибо
Ответ №1:
сообщается, что это исправлено в версии 4 https://github.com/vuejs/vue-jest/issues/88 Я попытался перейти на vue-jest@4.0.0-beta.2 и подтвердил, что эта проблема была исправлена