Возможно, это не тот ответ, который вам нужен, но не ваша работа для проверки события <v-select>
компонента *1003*. Это событие уже протестировано командой Vuetify среди юнит-тестов для этого компонента. Кстати, люди довольно часто хотят писать тесты, подобные описанному вами.
Однако ваша задача - убедиться, что ваш компонент (тот, который обертывает v-select
) определяет соответствующий интерфейс / контракт и соблюдает его. Некоторые примеры вещей, которые вы могли бы разумно протестировать:
- Имеет ли список элементов, назначенных на
v-select
, ровно три элемента: 1, 2 и 3? - Компонент имеет метод с именем
select_change()
и возвращает ли эта функция ожидаемые значения с заданным вводом? (Кстати, ваш select_change()
метод в настоящее время не возвращает любых значений, поэтому его сложно протестировать)
Ваши тесты могут выглядеть примерно так:
import { createLocalVue, mount } from '@vue/test-utils'
import Vue from 'vue'
import Vuetify from 'vuetify'
import Demo from '@/components/Demo'
Vue.use(Vuetify)
const vuetify = new Vuetify()
const localVue = createLocalVue()
describe('A Demo component', () => {
it('has a `v-select` with 3 items: [1, 2, 3]', () => {
const wrapper = mount(Demo, { localVue, vuetify })
const items = wrapper.find('.v-select').props('items')
expect(items.length).toBe(3)
expect(items).toStrictEqual([1, 2, 3])
})
it('has item 1 selected by default', () => {
const wrapper = mount(Demo, { localVue, vuetify })
expect(wrapper.find('.v-select').props('value')).toBe(1)
})
})
Каким бы заманчивым ни было желание протестировать базовую функциональность компонента v-select
, вы должны верить, что команда Vuetify выполнила свою работу. : -)