[英]Unable to import Reactjs Class for testing with mocha and enzyme
我的测试文件的代码是:
var React = require('react');
var {shalow} = require('enzyme')
var {SearchBox} = require('../static/js/functions')
var expect = require('expect');
describe('Test', function(){
it('1', function(){
expect(true).toEqual(true);
});
});
这是我在functions.js中的React类
var SearchBox = React.createClass({
render: function() {
return (
<div>
<SearchList data={this.props.data}></SearchList>
<li>
<button id="previous_page" className="previous_page" onClick={back}>Previous</button>
<button id="next_page" className="next_page" onClick={next}>Next</button>
</li>
</div>
)
}
});
它工作正常,但是我想编写测试,当我运行它时,它输出以下错误:
irtza @ irtza-Lenovo-G50-70:〜/ Desktop / Kamal Hasan / pedialink $ mocha ./js_test/*.js / home / irtza / Desktop / Kamal Hasan / pedialink / static / js / functions.js:39,^语法错误:意外的令牌<在export.runInThisContext(vm.js:53:16)在Module._compile(module.js:511:25)在Object.Module._extensions..js(module.js:550:10)在在Module.require(module.js:466:17)的try.ModuleLoad(module.js:415:12)的tryModuleLoad(module.js:415:12)的Module.load(module.js:456:32) )的Object(internal / module.js:20:19)。 (/ home / irtza / Desktop / Kamal Hasan / pedialink / js_test / test.js:3:19)在Module._compile(module.js:541:32)在Object.Module._extensions..js(module.js: 550:10)在Module.load(module.js:456:32)在tryModuleLoad(module.js:415:12)在Function.Module._load(module.js:407:3)在Module.require(模块。 js:466:17)在Mocha的Array.forEach(本机)在/usr/local/lib/node_modules/mocha/lib/mocha.js:220:27在require(内部/module.js:20:19)在。 Mocha.run(/usr/local/lib/node_modules/mocha/lib/mocha.js:485:10)的loadFiles(/usr/local/lib/node_modules/mocha/lib/mocha.js:217:14)宾语。 (/ usr / local / lib / node_modules / mocha / bin / _mocha:405:18)在Module._compile(module.js:541:32)在Object.Module._extensions..js(module.js:550:10) )在Module.load(module.js:456:32)在tryModuleLoad(module.js:415:12)在Function.Module._load(module.js:407:3)在Function.Module.runMain(module.js) :575:10)在启动时(node.js:159:18)在node.js:444:3
您的代码混合了ES5和ES6语法。
我认为问题出在这部分代码:
var React = require('react');
var {shalow} = require('enzyme');
var {SearchBox} = require('../static/js/functions');
如果您想使用ES5语法:
var React = require('react');
var shalow = require('enzyme').shalow; // notice how we access object property `.objectProperty`
var SearchBox = require('../static/js/functions');
如果您想使用ES6语法:
import React from 'react';
import {shalow} form 'enzyme'; // notice how we access object property `{objectProperty}`
import SearchBox form '../static/js/functions';
还请确保在function.js文件的末尾,使用以下命令导出组件:
module.exports = SearchBox; // ES5 syntax
export default SearchBox; // ES6 syntax
您需要更新Node版本(mocha取决于node.js)(以支持es6模块)或使用requireJS导出组件-module.exports ... +您应该检查节点版本支持es6的哪些部分,因为代码已通过摩卡咖啡不是“巴比伦特” :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.