Я собираюсь протестировать некоторое поведение в компоненте Vue, которое происходит только при смене реквизита. Компонент Vue выглядит аналогично этому компоненту, соответствующая логика для теста происходит в наблюдателе.
<script>
export default {
components: {
},
props: {
examleProp: {
type: Boolean,
required: false,
default: false,
}
},
watch: {
exampleProp: function(newVal, oldVal) {
// logic which needs to be tested
},
}
};
</script>
<template>
<h1>hello world</h1>
</template>
Тестовая логика работает нормально при следовании приведенному ниже подходу.
it('example test', done => {
let wrapper = mount(exampleComponent, {
propsData: {
},
template: `
<example-component >
</example-component>
`
});
wrapper.setProps({
isSubmitting: true
});
});
Наблюдатель вызван и готов к тестированию, все хорошо.
Поскольку тест должен быть интегрирован в набор тестов, существуют некоторые ограничения. Компонент не монтируется, но его экземпляр выглядит следующим образом:
it('example test', done => {
let wrapper = new Vue({
components: {
exampleComponent,
},
template: `
<example-component></example-component>
`,
}).$mount();
// how to update props now?
// wrapper.setProps && wrapper.$setProps are both undefined
});
Итак, я пытаюсь достичь способа обновления реквизитов экземпляра компонента, чтобы запускать наблюдатель для запуска, любойИдеи на это?