首页 > 解决方案 > 在自定义 JS 类上导出导致使用 babel-jest 进行测试时出错

问题描述

在我的 Vue 应用程序测试文件中,我正在拉入import Users from '@/models/user';

在运行测试之前我已经清除了缓存,但它似乎没有帮助..

src/models/user.js我的文件中:

export default class Users {

}

当我运行测试时,我得到了错误:

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){export default function _classCallCheck(instance, Constructor) {
                                                                                         ^^^^^^

SyntaxError: Unexpected token export



  at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/script_transformer.js:403:17)
  at Object.<anonymous> (src/models/user.js:10:47)

jest.config.js如下:

module.exports = {
  moduleFileExtensions: [
    'js',
    'jsx',
    'json',
    'vue'
  ],
  transform: {
    '^.+\\.vue$': 'vue-jest',
    '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
    '^.+\\.jsx?$': 'babel-jest'
  },
  moduleNameMapper: {
    '^@/(.*)$': '<rootDir>/src/$1'
  },
  snapshotSerializers: [
    'jest-serializer-vue'
  ],
  testMatch: [
    '**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
  ],
  testURL: 'http://localhost/'
}

babel.config.js的是:

module.exports = {
  presets: [
    '@vue/app',
    '@babel/preset-env'
  ]
}

标签: unit-testingvue.jsjestjsbabeljsbabel-jest

解决方案


推荐阅读