我想测试组件渲染<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
}