我有一个组件,其中包含来自Vue Bootstrap的b按钮组件。在单元测试中,我想检查一下,当我单击组件中的那个按钮时,是否路由到我传递给b-button的“ to”道具中指定的url。
我的问题是单元测试中未触发路由。或其中的b按钮/路由器链接未使用我的路由器实例。
我该如何测试?我什至需要吗?我已经简化了示例-我知道b按钮自己的单元测试涵盖了“ to”功能,但是我想测试是否向其传递了正确的url。
演示组件
<template>
<b-card
header="Button demo"
>
<b-button
class="test"
v-bind:to="toPath"
>Test</b-button>
</b-card>
</template>
<script>
export default {
name: 'ButtonDemo',data(){
return {
toPath: '/expected/path'
}
}
}
</script>
单元测试
import { mount,createLocalVue } from '@vue/test-utils'
import ButtonDemo from '@/path/to/ButtonDemo'
import BootstrapVue from 'bootstrap-vue'
import Vuex from 'vuex'
import VueRouter from 'vue-router'
const localVue = createLocalVue()
localVue.use(VueRouter)
const router = new VueRouter()
localVue.use(BootstrapVue)
describe('List',() => {
let $wrapper
test('Clicking "new" takes you to the create flow',async () => {
$wrapper = mount(ButtonDemo,{ localVue,router })
$wrapper.find('.test').trigger('click')
expect($wrapper.vm.$route.path).toBe('/expected/path')
})
})