0

どこかのチュートリアルから直接出てきた酵素テストがあります。

import React from 'react';
import { mount } from 'enzyme';
import { expect } from 'chai';

describe('<Keypad />', () => {

    it('should render children when passed in', () => {
        const wrapper = mount(
          <MyComponent>
            <div className="unique" />
          </MyComponent>
        );
        expect(wrapper.contains(<div className="unique" />)).to.equal(true);
    });
});

構文エラー、予期しないトークンが表示され続けます:

SyntaxError: test.js: Unexpected token     (9:4)
   7 |  it('should render children when passed in', () => {
   8 |          const wrapper = mount(
>  9 |            <MyComponent>
     |            ^
  10 |              <div className="unique" />
  11 |            </MyComponent>
  12 |          );

何か案は?これらのモジュールをすべてインストールし、package.json ファイルに構成しました。

  "devDependencies": {
    "babel-core": "^6.9.0",
    "babel-loader": "^6.2.4",
    "babel-preset-es2015": "^6.9.0",
    "babel-preset-react": "^6.5.0",
    "babel-register": "^6.9.0",
    "chai": "^3.5.0",
    "enzyme": "^2.3.0",
    "mocha": "^2.5.3",
    "react-addons-test-utils": "^15.1.0",
    "redux-devtools": "^3.3.1",
    "webpack": "^1.13.1",
    "webpack-dev-server": "^1.14.1"
   },
  "dependencies": {
    "compression": "^1.6.2",
    "csurf": "^1.9.0",
    "express-session": "^1.13.0",
    "helmet": "^2.1.0",
    "if-env": "^1.0.0",
    "object.assign": "^4.0.3",
    "react": "^15.1.0",
    "react-dom": "^15.1.0",
    "react-redux": "^4.4.5",
    "react-router": "^2.4.1",
    "redux": "^3.5.2",
    "request": "^2.72.0",
    "winston": "^2.2.0"
  }

Windows で npm テストを実行しています。

"test": "mocha src/home/test.js -c --compilers js:babel-register --recursive",

*****編集******

これは私のコンポーネントファイルです:

// Library / Framework imports
import React, { Component } from 'react'

/*
 * @class Home
 * @description Display the home page React Component
 */
 export default class Home extends Component {

    render() {

        return (
            <section>
                <h1>Home Page</h1>
                <p>This is the home page</p>
            </section>
        )
     }
 }

これは私のテストファイルです:

// Library / Framework imports
import React from 'react'
import { mount, render, shallow } from 'enzyme'
import { expect } from 'chai'
import Home from './Home.jsx'

describe('<Home />', () => {

    it('should render children when passed in', () => {

        const wrapper = shallow(<Home />);
        console.log(wrapper)
    })
})

エラーは次のとおりです。

SyntaxError: D:/home/test.js: Unexpected token (12:26)
  10 |
  11 |          // console.log(SubmitButton)
> 12 |          const wrapper = shallow(<Home />);
     |                                  ^
  13 |          console.log(wrapper)
  14 |
  15 |          // expect(<SubmitButton />).contains()).to.equal(true)

シャロー、レンダー、マウントしてみました。ここで何が欠けていますか?最新の React 15 バージョンを使用しています。実際、最新のモジュールはすべて、npm をインストールしただけです。このライブラリの使用方法に関する基本的な理解が欠けていたに違いありません。助けてください!

4

2 に答える 2

0

<MyComponent>は単なる例です。<Keypad/>マウントで使用する必要があります

const wrapper = mount(
  <Keypad>
    <div className="unique" />
  </Keypad>
);
于 2016-06-07T14:32:37.030 に答える