2017-11-17 7 views
1

Jest/EnzymeでReactコンポーネントをテストしようとしています。私はテストを少なくとも実行することを期待していますが、ファイルをインポートしているときにはすでに失敗しており、テスト自体には達しません。だから私は設定に何が欠けているのだろうか?Jest:テストスイートを実行できませんでした。予期しないトークン=

エラー:

__tests__/Favorite.test.js 
    ● Test suite failed to run 

    /src/components/favorite/Favorite.js: Unexpected token (13:13) 
     11 | } 
     12 | 
     > 13 | isFavorite = (props) => { 
      |   ^
     14 |  return localStorage.getItem(props.recipe.id) ? true : false 
     15 | } 
     16 | 

テストファイル:

import React from 'react' 
import { mount } from 'enzyme' 
import Favorite from '../src/components/favorite/Favorite' 


describe('Favorite',() => { 
    const recipe = {id: "12345"} 
    const favorite = mount(<Favorite recipe={recipe}/>) 
    // assertions 
}) 

.babelrc:

{ 
    "presets": ["es2015", "react"] 
} 

package.json:

"devDependencies": { 
    "babel-jest": "^21.2.0", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "enzyme": "^3.2.0", 
    "enzyme-adapter-react-16": "^1.1.0", 
    "enzyme-to-json": "^3.2.2", 
    "jest": "^21.2.1", 
    "react-test-renderer": "^16.1.1" 
    }, 
    "jest": { 
    "setupTestFrameworkScriptFile": "./src/setupTests.js", 
    "moduleNameMapper": { 
     "\\.(css|jpg|png|svg|ico)$": "<rootDir>/empty-module.js" 
    } 
    } 


アップデート:私は、キーワードを機能させる脂肪矢印から機能の宣言を変更すると

、テストが実行されます。なぜだろう?

冗談では動作しません脂肪の矢印機能:冗談では動作しない

// Favorite.js 

    isFavorite = (props) => { 
    return localStorage.getItem(props.recipe.id) ? true : false 
    } 

Functionキーワード:

// Favorite.js 

    isFavorite(props) { 
    return localStorage.getItem(props.recipe.id) ? true : false 
    } 
+0

はあなたがVAR /聞かせて/ constのようにそれを宣言しているの? – rrd

+0

私もそれを試しましたが、同じエラーメッセージが表示されます。一番上に、アプリケーションはブラウザでコンパイルに失敗します。 – Quynh

答えて

3

はあなたがbabel-preset-stage-0パッケージを逃しました。

  1. それを追加します。yarn add babel-preset-stage-0 --dev

  2. 編集し.babelrc{ "presets": ["es2015", "react", "babel-preset-stage-0"] }

関連する問題