3

我试图按照本指南https://vue-test-utils.vuejs.org/en/guides/testing-SFCs-with-jest.html为我的 Vue 项目设置测试

我完成了指南并为我的一个组件创建了一个测试。然后我跑了jest,我得到了下面的错误:

unknown: Unexpected token (10:4)
         8 | export default {
         9 |   computed: {
      > 10 |     ...mapGetters([
           |     ^
        11 |       'user'
        12 |     ])
        13 |   }

我已经用谷歌搜索了这个错误并查看了其他示例项目,但我仍然不知道如何解决这个问题。

任何帮助将不胜感激。

应用程序.vue

<template>
  <div id="app" />
</template>

<script>
  import { mapGetters } from 'vuex'

  export default {
    computed: {
      ...mapGetters([
        'user'
      ])
    }
  }
</script>

应用规范.js

import { shallow } from '@vue/test-utils'
import App from './App'

describe('App', () => {

  it('works', () => {
    const wrapper = shallow(App)

    expect(wrapper.isVueInstance()).toBeTruthy()
  })
})

.babelrc

{
"presets": [
    ["env", { "modules": false }]
  ],
  "env": {
    "test": {
      "presets": [
        ["env", { "targets": { "node": "current" }}]
      ]
    }
  }
}

package.json(只是开玩笑的一部分)

"jest": {
    "moduleFileExtensions": [
      "js",
      "json",
      "vue"
    ],
    "transform": {
      ".*\\.(vue)$": "<rootDir>/node_modules/vue-jest",
      "^.+\\.js$": "<rootDir>/node_modules/babel-jest"
    },
    "snapshotSerializers": [
      "<rootDir>/node_modules/jest-serializer-vue"
    ],
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/src/$1"
    }
  }
4

1 回答 1

1

通过这个答案: SyntaxError on spread operator, while using babel env preset

要使用扩展运算符,您必须使用 babel-plugin-transform-object-rest-spread,所以安装它: npm install --save-dev babel-plugin-transform-object-rest-spread

并将其添加到 .babelrc 中的“插件”选项下: "plugins": ["transform-object-rest-spread"]

另外,请查看https://vue-test-utils.vuejs.org/guides/#mocking-getters在测试中模拟您的 getter。

于 2018-06-18T08:22:41.410 回答