Vue测试程序在process.env.NODE_ENV中运行代码!=='test'检查

时间:2019-02-21 17:12:53

标签: vue.js vue-test-utils

由于https://github.com/vuejs/vue-cli/issues/1669,在使用vue-test-utils运行单元测试时,我暂时禁用了路由器代码。效果很好,但是,现在我有另一个测试正在对测试进行爆炸,因为它正在访问已禁用的路由代码。

if (process.env.NODE_ENV !== 'test') {
  route = new Router({
    mode: 'history',
    base: process.env.BASE_URL,
    routes: [
      {
        path: '/',
        name: 'home',
        component: Home,
        beforeEnter: (to, from, next) => {
          if (store.getters.currentUser.agencyUser) {
            next({ name: 'agency' })
          } else if (store.getters.currentUser.participantUser) {
            next({ name: 'participant' })
          } else {
            next()
          }
        }
      },
      ...
} else {
  route = new Router({
    mode: 'history',
    base: process.env.BASE_URL,
    routes: []
  })
}

如果我在组件中调用任何router方法,则该测试现在失败,因为我添加了beforeEnter检查。

beforeEnter: (to, from, next) => {
          if (store.getters.currentUser.agencyUser) {
            next({ name: 'agency' })
          } else if (store.getters.currentUser.participantUser) {
            next({ name: 'participant' })
          } else {
            next()
          }
        }

测试失败,因为store引用了localStorage,而vue-test-utils无法处理。但是,所有存储的引用代码都处于process.env.NODE_ENV !== 'test'状态。测试不应该忽略该段代码吗?我唯一的猜测是,即使文件没有运行,它仍然可以“读取”并经过验证。

0 个答案:

没有答案