我正在尝试使用酶/摩卡测试反应成分,并且对如何设置它有点困惑。
这是测试
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构建这个组件。我究竟做错了什么?
答案 0 :(得分:3)
您应该使用babel-register选项运行Mocha以通过Babel运行测试:
--compilers js:node_modules/babel-register
确保根目录中有 .babelrc 文件。它应该至少包含react预设。
.babelrc 的示例:
{
"presets": [
"es2015",
"react"
]
}