web-dev-qa-db-ja.com

React JS Jestが原因で「SyntaxError:Unexpected token。」

コードをテストするために、react JESTを使用しています。コンポーネントが1つであり、他に何もインポートしていない場合、「npm test」はスムーズに実行され、今、複数のコンポーネントを一緒にテストしたいのですが、すぐにこのエラーが発生しました。

SyntaxError: Unexpected token .

Reactがこのような何か他のものをインポートしているときはいつでも見えました:

require( './style/fixed-data-table.css' );
require( './style/jnpr-datatable.scss' );

そしてjestを使用すると、予期しないトークン "。"がスローされます。エラー。

私の設定に何か問題があるに違いありませんが、どこに?私のPackage.jsonには以下が含まれます:

 "jest": {
   "unmockedModulePathPatterns": [
     "<rootDir>/node_modules/react/",
     "<rootDir>/node_modules/react-dom/",
     "<rootDir>/node_modules/react-addons-test-utils/"
   ]
 }

そして、.babelrcはすでにルートにあります。また、babel-jestも含まれています。ありがとう

16
user3006967

webpack統合 のjestドキュメントをご覧ください。問題は、jestがjs以外のもので機能しないことです。したがって、インポートするすべてのjsファイルをモックする必要があります。最も簡単な方法は、jest設定でmoduleNameMapperを設定することです。

{
  "jest": {
    "moduleNameMapper": {
      "\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js"
    }
  }
}

とともに __mocks__/styleMock.jsはこのように見えます。

module.exports = {};
25