我从问题Vue-Test-Utils未知自定义元素:中添加了解决方案,但它不起作用。
当我试图在我的单元测试规范中运行shallowMount时,我遇到了问题:
Vue警告:未知的自定义元素:-正确注册组件吗?对于递归组件,请确保提供"name“选项。
这是我的规格:
import { shallowMount, createLocalVue, RouterLinkStub } from '@vue/test-utils';
import VueRouter from 'vue-router';
import Vuetify from 'vuetify';
import expect from 'expect';
import Home from '../../pages/Home.vue';
describe('Home.vue', () => {
// let wrapper;
let localVue;
beforeEach(() => {
// wrapper = shallowMount(Home);
localVue = createLocalVue();
localVue.use(Vuetify)
localVue.use(VueRouter)
});
it('renders the Home page component', () => {
debugger;
let wrapper = shallowMount(Home, { localVue, stubs: { RouterLink: RouterLinkStub } });
expect(wrapper.html()).toContain('<h2>Bem-vindo (a) ao Cadastro Nacional de Informações Espeleológicas - CANIE</h2>');
});
});我的Home.vue组件:
<template>
<v-card class="elevation-7">
<v-card-title>
<h2>Bem-vindo (a) ao Cadastro Nacional de Informações Espeleológicas - CANIE</h2>
</v-card-title>
<v-container>
<v-row class="align-center justify-space-around fill-height" my-2>
<v-btn :to="{name: 'cavernaRegister'}">CADASTRAR CAVERNA</v-btn>
<v-btn to="/caverna">CAVERNAS PENDENTES</v-btn>
<v-btn to="/relatorio">RELATÓRIO</v-btn>
</v-row>
<v-row class="justify-center" my-2>
<v-col cols="4">
<v-card>
<v-card-title primary-title class="headline">
<div>
<h3 class="headline mb-0">Cavernas por Estados</h3>
</div>
</v-card-title>
<v-divider></v-divider>
<div id="canvas-holder">
<canvas id="chart-area"></canvas>
</div>
</v-card>
</v-col>
</v-row>
</v-container>
</v-card>
</template>
<script>
import colors from 'vuetify/es5/util/colors'
import Chart from 'chart.js'
export default {
name: 'Home',
data(){
return {
config: { ...
},
}
},
mounted(){
let ctx = document.getElementById('chart-area').getContext('2d');
window.doughnutChart = new Chart(ctx, this.config);
},
}
</script>我正在使用@vue/test-utils: "^1.0.0-beta.31"和mocha "^6.1.4"。这个问题有什么解决办法或解决办法吗?
发布于 2020-03-09 14:07:04
我在vue test utils 文档中找到了一个如何对router-view和router-link进行存根的示例。
import { shallowMount } from '@vue/test-utils'
shallowMount(Component, {
stubs: ['router-link', 'router-view']
})发布于 2021-07-30 20:01:28
2021更新:现在需要将其设置为全局属性
import { shallowMount } from '@vue/test-utils'
shallowMount(Component, {
global: {
stubs: ['router-link', 'router-view']
}
})https://stackoverflow.com/questions/59987665
复制相似问题