无法导入用于摩卡和酶测试的Reactjs类

我的测试文件的代码是:

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

这是我在函数.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,^ SyntaxError:Unexpected token <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.require(module.js:466:17)处的Function.Module._load(module.js:407:3)处的tryModuleLoad(module.js:415:12)处的Module.load(module.js:456:32) )在对象的require(internal / module.js:20:19)。 (Module.js:541:32)在Object.Module._extensions.js(module.js:3:19)处打开(/ home / irtza / Desktop / Kamal Hasan / pedialink / js_test / test.js:在Module.load(module.js:456:32)上,在Module.require(module。)的Function.Module._load(module.js:407:3)的tryModuleLoad(module.js:415:12) js:466:17)在位于Mocha的Array.forEach(native)的/usr/local/lib/node_modules/mocha/lib/mocha.js:220:27处的require(internal / 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)at目的。 (module.js:550:10)在Module._compile(module.js:541:32)上的位置(/ usr / local / lib / node_modules / mocha / bin / _mocha:405: )在Function.Module.runMain(module.js)上的Function.Module._load(module.js:407:3)处的Module.load(module.js:456:32)处的tryModuleLoad(module.js:415:12) :575:10)在node.js:444:3启动时(node.js:159:18)


您需要更新Node(mocha取决于node.js)版本(以支持es6模块)或使用requireJS - module.exports ... +导出组件。+您应该检查您的节点版本支持的es6的哪些部分,因为代码已通过摩卡是不是“babelized”:)


你的代码是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
链接地址: http://www.djcxy.com/p/33027.html

上一篇: Unable to import Reactjs Class for testing with mocha and enzyme

下一篇: ExpressJS Multer File Persmission