如何在Jest测试用例+ VueJS + Jest中更改$ route

时间:2020-02-14 06:30:30

标签: unit-testing vue.js jestjs vue-router

我是VueJS的新手(在测试用例中也是),如果已经问过这个问题,则表示歉意,

我在组件中添加了一个方法,该方法检查$route.name并相应地返回一个布尔值,

但是问题出现在测试用例中(JEST) 已经尝试过了,但是没有用

isAbc () { return this.$route.name === 'abc-route }

这是我要为其编写测试用例的方法,

const $route = {
  name: 'abc-route'
}

const wrapper = shallowMount(Component, {
  mocks: {
    $route
  }
})

我也尝试过这种方法 https://github.com/facebook/jest/issues/890#issuecomment-209698782 并检查我是否可以得到this.$route.path,但也没有运气。

任何人都可以提及我想念的是什么或做错了什么?

1 个答案:

答案 0 :(得分:0)

万一有人卡住,我可以通过改变方法来解决,

代替分配$ router,应该执行以下操作

component.vm.$router.replace({ path: '/some/path', name: 'some-name' })

然后用

进行测试
    expect(component.vm.isAbc()).toBe(false)