未知的自定义元素:使用createLocalVue时<router-link>

时间:2020-04-10 08:41:21

标签: vue.js vue-router vue-test-utils

我想测试组件渲染<router-link>。测试通过,但是在使用createLocalVue时收到警告:

[Vue warn]: Unknown custom element: <router-link> - did you register the component correctly?

我的测试用例:

import { shallowMount, createLocalVue } from "@vue/test-utils";
import VueRouter from "vue-router";
import NewsItem from "@/components/home/NewsItem";

const localVue = createLocalVue();
localVue.use(VueRouter);
const router = new VueRouter();

describe("NewsItem.vue", () => {
   it("should link to full post", () => {
    const wrapper = shallowMount(NewsItem, {
      localVue,
      router,
      stubs: ["router-link"],
      propsData: {
        link: "my-mock-news"
      }
    });

    expect(wrapper.get(".news").attributes().to).toContain("my-mock-news");
  });
});

如果我导入标准Vue并对其进行调用,那么一切似乎都是正确的,但是Vue Test Utils文档建议不要污染Vue而是改用localVue,所以我想避免这种情况。还是我弄错了?

import Vue from "vue";
Vue.use(VueRouter);

我也尝试过这种解决方案,但没有成功:

stubs: {
    RouterLink: RouterLinkStub
}

0 个答案:

没有答案