Reactjs 用巴别塔测试摩卡咖啡的反应成分

Reactjs 用巴别塔测试摩卡咖啡的反应成分,reactjs,babeljs,enzyme,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 di

我试图用酶/摩卡测试一种反应成分,但对如何设置有点困惑

这是测试

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);
  });

});
下面是我得到的错误:

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>
SyntaxError:/my_app/public/js/components/polls/index.js:意外标记(47:10)
45 |每个投票(投票,i){
46 |返回(
> 47 |           
|           ^
48 |             
49 |{poll.name}
50 |             

问题似乎出在JSX上,但我可以用webpack构建这个组件。我做错了什么?

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

--compilers js:node_modules/babel-register
确保在根目录中有一个.babelrc文件。它至少应该包含预设值

例如.lrc:


谢谢!我将命令更改为
env NODE\u env=test mocha--compilers js:NODE\u modules/babel register--require babel polyfill--reporter spec--timeout 5000--recursive
,得到了同样的错误。您是否使用
.babelrc
文件?没有反应预设?es2015预设中没有包含这一点,修复了它!如果您想写一个答案为此,我将批准它。文件扩展名是
.js
还是
.jsx
--compilers js:node_modules/babel-register
{
    "presets": [
        "es2015",
        "react"
    ]
}