Надеюсь, это немного поможет. Я понял, что при заглушке имя компонента меняется, и в конце добавляется -stub
.
Так что, если вы заглушите b-input
, он будет называться b-input-stub
при использовании:
const wrapper = shallowMount(BInputPractice, { stubs: ['b-input'] })
Не думаю, что вам нужно использовать localView
и stubs
одновременно. Также вы можете использовать setData (data) для установки данных компонента.
expect(wrapper.find('b-input-stub').exists()).toBeTruthy()
wrapper.setData({ name: 'a name' })
expect(wrapper.vm.name).toEqual('a name')
Здесь trigger('input')
запускать не нужно, потому что вы не указали, что делать @input.native
в b-input
, как в шаблоне:
<b-input @input.native="updateName" v-model="name"> </b-input>
И внутри экспорта по умолчанию в вашем скрипте.
methods: {
updateName: function () {
this.$emit('nameUpdate', this.name)
}
}
Однако, чтобы установить и проверить значение пользовательских компонентов, таких как b-input
, я бы обратился к vuejs / vue-test-utils .