我的测试文件的代码是:
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-联想-G50-70:~/Desktop/Kamal Hasan/pedialink$ mocha ./js_test/*js /home/irtza/Desktop/Kamal Hasan/pedialink/static/js/functions.js s.js:39,^ SyntaxError:意外令牌< at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:511:25) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:456:32) at tryModuleLoad (module.js:415:12) at Function.Module._load (module.js:407:3) at Module.require (module.js:466:17) at require (内部/module.js:20:19)。(/home/irtza/Desktop/Kamal Hasan/pedialink/js_test/test.js:3:19)在Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:456:32) at tryModuleLoad (module.js:415:12) at Function.Module._load (module.js:407:3) at Module.require( (/usr/local/lib/node_modules/mocha/lib/mocha.js:217:14) /module.js:20:19) at Array.forEach at Array.forEach(原生) at Mocha.loadFiles (/usr/local/lib/node_modules/mocha/lib/mocha.js:217:14) at Mocha.run (/usr/local/lib/node_modules/mocha/lib/mocha.js:485:10) at Object。(/usr/local/lib/node_modules/mocha/bin/_mocha:405:18) at Module._compile (module.js:541:32) at Object.Module._extensions..js (module.js:550:10) at Module.load (module.js:456:32) at tryModuleLoad (module.js:415:12) at Function.Module._load (module.js:407:3) at Function.Module.runMain(module.js:575:10)在node.js:444:3启动时(node.js:159:18)
发布于 2016-08-03 11:10:44
您的代码是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发布于 2016-08-02 09:32:18
您需要更新Node (mocha依赖于node.js)版本(以支持es6模块),或者使用requireJS - module.exports .+导出组件,您应该检查节点版本支持的es6的哪些部分,因为传递给mocha的代码不是"babelized“:)
https://stackoverflow.com/questions/38715980
复制相似问题