首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@vue/test-utils未知自定义元素:<路由器-视图>

@vue/test-utils未知自定义元素:<路由器-视图>
EN

Stack Overflow用户
提问于 2020-01-30 13:57:03
回答 2查看 1.9K关注 0票数 4

我从问题Vue-Test-Utils未知自定义元素:中添加了解决方案,但它不起作用。

当我试图在我的单元测试规范中运行shallowMount时,我遇到了问题:

Vue警告:未知的自定义元素:-正确注册组件吗?对于递归组件,请确保提供"name“选项。

这是我的规格:

代码语言:javascript
复制
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组件:

代码语言:javascript
复制
<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"。这个问题有什么解决办法或解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-09 14:07:04

我在vue test utils 文档中找到了一个如何对router-viewrouter-link进行存根的示例。

代码语言:javascript
复制
import { shallowMount } from '@vue/test-utils'

shallowMount(Component, {
  stubs: ['router-link', 'router-view']
})
票数 5
EN

Stack Overflow用户

发布于 2021-07-30 20:01:28

2021更新:现在需要将其设置为全局属性

代码语言:javascript
复制
import { shallowMount } from '@vue/test-utils'

shallowMount(Component, {
  global: {
      stubs: ['router-link', 'router-view']
  }
})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59987665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档