我正在使用 Buefy CSS 框架,它提供了自定义的 vue-js 组件,例如<b-input>
and <b-table>
,我在测试<b-input>
标签时遇到了问题。
import { shallowMount, createLocalVue } from '@vue/test-utils'
import BInputPractice from '../BInputPractice.vue'
import Buefy from 'buefy'
const localVue = createLocalVue()
localVue.use(Buefy)
describe('b-input Practice', () => {
it('updates the name data property', () => {
const wrapper = shallowMount(BInputPractice, {
localVue,
stubs: {
'b-input': Buefy.Input
}
})
const input = wrapper.find('input')
input.element.value = 'a name'
input.trigger('input')
expect(wrapper.vm.name).toBe('a name')
})
})
<!-- BInputPractice.vue -->
<template>
<div>
<b-input v-model="name"></b-input>
<!-- <input v-model="name"> -->
</div>
</template>
<script>
export default {
data() {
return {
name: ''
}
}
}
</script>
我的测试代码中的 expect 语句应该通过,因为当我使用<input>
标签而不是<b-input>
. 但是,触发 'input' 事件对data 属性<b-input>
没有任何作用。name
有谁知道我如何正确地对<b-input>
标签进行存根,以便我可以将其完全作为<input>
标签进行测试?