使用babel测试摩卡的反应成分

时间:2017-04-09 11:03:35

标签: reactjs babeljs enzyme

我正在尝试使用酶/摩卡测试反应成分,并且对如何设置它有点困惑。

这是测试

import React from 'react';
import { expect } from 'chai';
import { shallow, mount, render } from 'enzyme';
import Index from '../../public/js/components/polls/index'

describe("INDEX", function() {
  it("contains a div", function() {
    expect(shallow(<Index />).contains(<div id="index">)).to.equal(true);
  });

});

这是我开始测试的命令:

env NODE_ENV=test mocha --compilers js:babel-register --require babel-polyfill --reporter spec --timeout 5000 --recursive

这是我得到的错误:

SyntaxError: /my_app/public/js/components/polls/index.js: Unexpected token (47:10)
  45 |   eachPoll(poll, i) {
  46 |       return(
> 47 |           <Link to={"/poll/" + poll._id} key={poll._id}>
     |           ^
  48 |             <div className="btn btn-info btn-block">
  49 |               {poll.name}
  50 |             </div>

问题似乎与JSX有关,但我能够使用webpack构建这个组件。我究竟做错了什么?

1 个答案:

答案 0 :(得分:3)

您应该使用babel-register选项运行Mocha以通过Babel运行测试:

--compilers js:node_modules/babel-register

确保根目录中有 .babelrc 文件。它应该至少包含react预设。

.babelrc 的示例:

{
    "presets": [
        "es2015",
        "react"
    ]
}