“SyntaxError:意外的令牌<”,使用mocha和酶来测试ReactJS

时间:2016-06-20 14:02:18

标签: javascript unit-testing reactjs mocha enzyme

我正在使用Mocha,Enzyme,Shallow渲染并期望测试ReactJS。 我没有使用babel和ES6。我在Stack Overflow上看过其他问题,但没有人回答我的问题。

我正在使用带有commonJS和Grunt的ES5将JSX编译为JS并将app.built.js文件加载到html文件中,所有这些都加载到页面上。

这是我在speedoApp.jsx

中的代码
var React = require('react');
var ReactDOM = require('react-dom');

module.exports.default = React.createClass({
  render: function() {
    return(<p>Hello</p>);
  }
});

这是App.js

中的代码
var React = require('react');
var ReactDOM = require('react-dom');
var SpeedoApp = require('./speedoApp.jsx').default;

ReactDOM.render(
  <SpeedoApp />,
  document.getElementById('container')
)

我的HTML文件:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Speedometer</title>
  </head>
  <body>
    <div id="container"></div>
    <script src="./scripts/app.built.js"></script>
  </body>
</html>

我的测试文件speedoSpec.js

var React = require('react');
var expect = require('expect');
var enzyme = require('enzyme');
var shallow = enzyme.shallow;
var SpeedoApp = require('../../react_components/speedoApp.jsx');

describe('Component: speedoApp', function() {
  it('should display \'hello\' on the page', function() {
    var wrapper = shallow(<SpeedoApp />);
    expect(wrapper).to.have.length(1);
  });
});

运行mocha时收到错误消息:

var wrapper = shallow(<SpeedoApp />);
                      ^
SyntaxError: Unexpected token <

我还尝试将app.built.js文件替换为speedoApp.jsx中的speedoSpec.js文件。

任何人都知道我哪里出错了?

0 个答案:

没有答案