【问题标题】:Redux Testing unexpected Token errorRedux 测试意外 Token 错误
【发布时间】:2018-02-07 14:11:12
【问题描述】:

我遇到了一个 test_helper 文件的问题,该文件用于正常工作。这是一个我会在一段时间后回来的项目。错误和文件与 package.json 一起在下面,因为我怀疑它可能是编译器导致了问题。

错误

SyntaxError: /Users/mikewalters/Projects/video-
frontend/test/test_helper.js: Unexpected token (20:4)
18 | function renderComponent(ComponentClass, props = {}, state = {}) {
19 |   const componentInstance =  TestUtils.renderIntoDocument(
> 20 |     <Provider store={createStore(reducers, state)}>
   |     ^
21 |       <ComponentClass {...props} />
22 |     </Provider>
23 |   );

test_helperjs

import _$ from 'jquery';
import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import jsdom from 'jsdom';
import chai, { expect } from 'chai';
import chaiJquery from 'chai-jquery';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import reducers from '../src/reducers';

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = global.document.defaultView;
const $ = _$(window);

chaiJquery(chai, chai.util, $);

function renderComponent(ComponentClass, props = {}, state = {}) {
  const componentInstance =  TestUtils.renderIntoDocument(
    <Provider store={createStore(reducers, state)}>
      <ComponentClass {...props} />
    </Provider>
  );

  return $(ReactDOM.findDOMNode(componentInstance));
}

$.fn.simulate = function(eventName, value) {
  if (value) {
    this.val(value);
  }
  TestUtils.Simulate[eventName](this[0]);
};

export {renderComponent, expect};
import _$ from 'jquery';
import React from 'react';
import ReactDOM from 'react-dom';
import TestUtils from 'react-addons-test-utils';
import jsdom from 'jsdom';
import chai, { expect } from 'chai';
import chaiJquery from 'chai-jquery';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import reducers from '../src/reducers';

global.document = jsdom.jsdom('<!doctype html><html><body></body></html>');
global.window = global.document.defaultView;
const $ = _$(window);

chaiJquery(chai, chai.util, $);

function renderComponent(ComponentClass, props = {}, state = {}) {
  const componentInstance =  TestUtils.renderIntoDocument(
    <Provider store={createStore(reducers, state)}>
      <ComponentClass {...props} />
    </Provider>
  );

  return $(ReactDOM.findDOMNode(componentInstance));
}

$.fn.simulate = function(eventName, value) {
  if (value) {
    this.val(value);
  }
  TestUtils.Simulate[eventName](this[0]);
};

export {renderComponent, expect};

package.json

"scripts": {
    "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js",
    "test": "mocha -r mock-local-storage --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test",
    "test:watch": "npm run test -- --watch",
    "coverage": "babel-node ./node_modules/.bin/isparta cover --include 'src/**/*.js*' _mocha"
  },

这些测试之前已经工作过,而且它甚至没有进入测试的事实让我相信这是编译器或包发生了变化。但我无法在网上找到任何关于这个问题的信息。

【问题讨论】:

    标签: testing redux mocha.js babeljs babel-core


    【解决方案1】:

    我缺少一个 .babelrc 文件。最后添加了这个,它开始工作了

    {
     "presets": [ "react","es2015","es2016","stage-0" ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-18
      • 2018-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 2019-09-26
      相关资源
      最近更新 更多