首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法导入Reactjs类,以便使用mocha和酶进行测试

无法导入Reactjs类,以便使用mocha和酶进行测试
EN

Stack Overflow用户
提问于 2016-08-02 08:57:18
回答 2查看 318关注 0票数 0

我的测试文件的代码是:

代码语言:javascript
运行
复制
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类

代码语言:javascript
运行
复制
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)

EN

回答 2

Stack Overflow用户

发布于 2016-08-03 11:10:44

您的代码是ES5和ES6语法的混合体。

我认为问题来自于代码的这一部分:

代码语言:javascript
运行
复制
var React = require('react');
var {shalow} = require('enzyme');
var {SearchBox} = require('../static/js/functions');

如果您想使用ES5语法:

代码语言:javascript
运行
复制
var React = require('react');
var shalow = require('enzyme').shalow; // notice how we access object property `.objectProperty`
var SearchBox = require('../static/js/functions');

如果您想使用ES6语法:

代码语言:javascript
运行
复制
import React from 'react';
import {shalow} form 'enzyme'; // notice how we access object property `{objectProperty}` 
import SearchBox form '../static/js/functions'; 

此外,请确保在function.js文件的末尾,使用以下方法导出组件:

代码语言:javascript
运行
复制
module.exports = SearchBox; // ES5 syntax
export default SearchBox; // ES6 syntax
票数 1
EN

Stack Overflow用户

发布于 2016-08-02 09:32:18

您需要更新Node (mocha依赖于node.js)版本(以支持es6模块),或者使用requireJS - module.exports .+导出组件,您应该检查节点版本支持的es6的哪些部分,因为传递给mocha的代码不是"babelized“:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38715980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档