Как вызвать измененное событие с помощью утилиты vue test? - PullRequest
0 голосов
/ 06 января 2019

Я довольно новичок в vue, и я создал router-link с VueRouter для перехода на определенную страницу.

<router-link
  @click.native="onRouteClicked(index)"
/>

Теперь мне нужно смоделировать эту click.native функцию. Я знаю, что есть trigger функция для vue компонентов, доступных из vue-test-utils.

Но как мне click.native от триггера?

мой onRouteClicked выглядит так

methods: {
 onRouteClicked: function (index) {
   this.routedIndex = index;
 }

}

мой тест выглядит так

const myRouteWrapper = navBar.find('[to="/myroute"]');
myRouteWrapper.trigger('click')
expect(myComp.vm.routedIndex).equal(1);

routedIndex вообще не меняется

1 Ответ

0 голосов
/ 06 января 2019

Да, так что после целого дня усилий, я думаю, я должен сделать это Q & A.

Проблема была в том, что я не использовал VueRouter. Импорт VueRouter и мои маршруты и использование их с localVue помогли мне.

import VueRouter from 'vue-router'
import { mount, createLocalVue } from '@vue/test-utils'

var localVueInstance = createLocalVue()
localVueInstance.use(VueRouter)

var router = new VueRouter({
   routes: [],
   mode: 'history'
})

И на моих тестах

var wrapper = mount(navBarComp, {
    propsData,
    localVue: localVueInstance,
    router 
});
var myRouteWrapper = wrapper.find('[href="/myroute"]');
myRouteWrapper.trigger('click')
...