Vuejs2 vue测试url在单击的按钮上失败

Vuejs2 vue测试url在单击的按钮上失败,vuejs2,vue-test-utils,Vuejs2,Vue Test Utils,我想在Vuejs上创建一个简单的测试。 目的是单击路由器链接并证明路径名正确。 代码如下: describe("Menu.vue", () => { const localVue = createLocalVue(); localVue.use(VueRouter); test("click on first routes to ./first", async () => { const wrapper = shallowMount(Menu, {


我想在Vuejs上创建一个简单的测试。 目的是单击路由器链接并证明路径名正确。 代码如下:

    describe("Menu.vue", () => {
  const localVue = createLocalVue();
  localVue.use(VueRouter);

  test("click on first routes to ./first", async () => {
    const wrapper = shallowMount(Menu, {
      localVue,
      router,
      stubs: {
        RouterLink: RouterLinkStub,

        First
      }
    });
    await wrapper.find("#testFirst").trigger("click");
    await Vue.nextTick();
    expect(wrapper.find("#testFirst").exists()).toBe(true);

    await flushPromises();
    expect(location.pathname).toBe("/first")
  });
});
主要组件是一个带有路由器链接id testFirst的Menu.vue,错误来自expect失败的最后一行。 另一个组件名为first.vue。 第一个expect通过证明#testFirst存在
它需要“/第一个”并收到“/”

感谢您不用检查您可以测试的位置路径名
expect(wrapper.vm.$route.push).toHaveBeenCalledWith({YOUR route})

为此,您必须模拟$route push方法,在为组件网创建包装时,可以在存根中执行该方法

mocks: {
    $router:{
       push:jest.fn()
    }
}
这是测试文件夹中的代码