0

我的测试文件的代码是:

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 , ^ SyntaxError:Exports.runInThisContext (vm.js:53:16) 处的意外令牌 < 在 Module._compile (module.js:511:25) 在 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 (module.js:466:17) 在 require (internal/module.js:20:19) 在 Object. (/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 (module. js:466:17) at require (internal/module.js:20:19) at /usr/local/lib/node_modules/mocha/lib/mocha.js:220:27 at Array.forEach (native) at Mocha。加载文件 (/usr/local/lib/node_modules/mocha/lib/mocha.js:217:14) 在 Mocha.run (/usr/local/lib/node_modules/mocha/lib/mocha.js:485:10) 在目的。(/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

4

2 回答 2

1

您的代码是 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-03T11:10:44.200 回答
0

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

于 2016-08-02T09:32:18.593 回答