我对vue相当陌生,并且已经使用VueRouter创建了router-link
以导航到特定页面。
<router-link
@click.native="onRouteClicked(index)"
/>
现在,我需要模拟此click.native
函数。我知道trigger
有一个vue-test-utils
函数可用于vue组件。
但是我如何从触发器进入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
完全没有改变
答案 0 :(得分:1)
是的,经过一整天的努力,我想我应该对此进行问答。
问题是我没有使用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')