【问题标题】:Unknown custom element Vue Jest Testing on vuetify plugin 2021 - Vue Cli 2vuetify 插件 2021 上的未知自定义元素 Vue Jest 测试 - Vue Cli 2
【发布时间】:2021-07-29 02:10:40
【问题描述】:

在 jest.config.js 中配置 setup.js 并不能解决错误

setup.js

import Vue from "vue";
import Vuetify from "vuetify";
Vue.config.productionTip = false;
Vue.use(Vuetify);

jest.config.js

module.exports = {
  preset: "@vue/cli-plugin-unit-jest",
  setupFiles: ["./tests/unit/setup.js"],
};

发生错误:

  • [Vue 警告]:未知的自定义元素:<v-app-bar> - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项

  • [Vue 警告]:未知的自定义元素:<v-row> - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项

  • [Vue 警告]:未知的自定义元素:<v-col> - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项

【问题讨论】:

    标签: vue.js vuejs2 vuetify.js vue-test-utils


    【解决方案1】:

    Vuetify 的设置测试

    对于 vuetify,您需要进行一些更改以确保一切正常。 首先,在项目的tests文件夹下创建一个setup.js文件,内容如下:

    import Vue from 'vue';
    import Vuetify from 'vuetify';
    Vue.use(Vuetify);
    Vue.config.productionTip = false;
    

    之后打开 package.json 文件并替换

    来自

    "test:unit": "vue-cli-service test:unit"

    "test:unit": "vue-cli-service test:unit --setupTestFrameworkScriptFile=./tests/setup.js"

    我们来写一个简单的测试

    import { mount } from "@vue/test-utils";
    import Vuetify from "vuetify";
    
    describe("example.vue", () => {
       const vuetify = new Vuetify();
       test("False Test", () => {
           const wrapper = mount(Login, {
               stubs: ["router-link", "router-view"],
               vuetify,
        });
        
         const h1 = wrapper.find("h1");
         expect(h1.html()).toBe("<div><p>Foo</p></div>");
      });
    
      test("True Test", () => {
        const wrapper = mount(Login, {
          stubs: ["router-link", "router-view"],
          vuetify,
        });
        const h1 = wrapper.find("h1");
        expect(h1.html()).toBe("<h1>Login</h1>");
      });
    

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2019-12-04
      • 2020-09-01
      • 2018-09-14
      • 2020-04-05
      • 2018-02-06
      • 2017-12-22
      • 2018-02-08
      • 1970-01-01
      相关资源
      最近更新 更多