Jest - 导入意外的令牌

9

我想学习如何使用React和jest进行单元测试。但是我遇到了以下错误:

意外的token import

这是我的babel预设:

{
  "presets": ["es2015", "stage-0", "react"],  
  "env": {
    "test": {
        "plugins": ["transform-es2015-modules-commonjs"]
    }
}
}

这是我要测试的文件:

import jest from 'jest';
import React from 'react'; 
import { shallow } from 'enzyme';
import Step from '../src/components/step.js';

const wrapper = shallow(<Step />);
wrapper.find('a').simulate('click', { preventDefault() {} });

这是我的package.json文件:

{
  "name": "react-simple-boilerplate",
  "version": "1.0.0",
  "description": "Simple and lightweight Boilerplate for ReactJS projects",
  "scripts": {
    "lint": "eslint src",
    "start": "node server.js",
    "test": "jest"
  },
  "devDependencies": {
    "babel-core": "^6.24.1",
    "babel-loader": "^7.0.0",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "css-loader": "^0.28.0",
    "enzyme": "^3.2.0",
    "enzyme-adapter-react-16": "^1.1.0",
    "eslint": "^3.19.0",
    "eslint-plugin-react": "^6.10.3",
    "jest": "^21.2.1",
    "node-sass": "^4.5.2",
    "react-addons-test-utils": "^15.6.2",
    "sass-loader": "^6.0.3",
    "style-loader": "^0.16.1",
    "webpack": "^2.4.1",
    "webpack-dev-server": "^2.4.4"
  },
  "dependencies": {
    "babel-loader": "^7.0.0",
    "react": "^15.5.4",
    "react-dom": "^15.5.4"
  },
  "main": "server.js"
}

不知道为什么会出现这个提示?
2个回答

7

看起来你的依赖中缺少了 babel-jest 。这就是为什么在执行测试之前,jest 没有对你的ES6+代码运行 babel 的原因。


或者是错误的版本,就像我遇到的那样。 - Valerij Dobler

0

我非常确定您需要将Babel的预设添加到测试中,Jest将env变量设置为test。

所以...

"test": {
    "plugins": ["transform-es2015-modules-commonjs"],        
    "presets": ["es2015", "react", "stage-0"]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接