Я хочу проверить рендеринг компонента <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 и вместо этого использовать локальный Vue, поэтому я бы хотел этого избежать. Или я ошибаюсь?
import Vue from "vue";
Vue.use(VueRouter);
Я тоже пробовал это решение, но безуспешно:
stubs: {
RouterLink: RouterLinkStub
}