单元测试语法错误,反应,摩卡

Unit Testing Syntax error, react, mocha

我正在尝试使用酶、mocha 和 chai 为我的 React 应用设置一些测试。 (我也在使用 webpack)。我为我的浏览器内测试设置了 Karma,但我想 运行 这些测试只用节点。

我目前在尝试 运行 测试时遇到语法错误。我不确定如何解决它。

更新:我正在 运行使用 es6 进行测试 mocha 'components/**/*.test.js' --recursive --compilers js:babel-register

我得到的错误是:

   8 | describe('<button />', () => {
   9 |     it('renders something', () => {
> 10 |         const wrapper = shallow(<button />)
  11 |         expect(wrapper).to.be.present
  12 | })

您需要设置 Babel 才能处理 JSX 语法。

有两种选择:将配置添加到您的 package.json,或者创建一个包含配置的名为 .babelrc 的文件。

首先,安装babel-preset-react:

$ npm i babel-preset-react --save

接下来,将以下内容添加到您的 package.json

"babel": {
  "presets": [ "react" ]
}

(或添加该对象,不带 "babel" 键,到 .babelrc

您可能想要使用的另一个预设是 babel-preset-es2015,您可以以类似的方式添加它(只需将其添加到 presets 数组)。

关于 Babel 配置的更多文档 here and here(专门针对 es2015)。