コードをテストするために、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も含まれています。ありがとう
webpack統合 のjestドキュメントをご覧ください。問題は、jestがjs以外のもので機能しないことです。したがって、インポートするすべてのjsファイルをモックする必要があります。最も簡単な方法は、jest設定でmoduleNameMapper
を設定することです。
{
"jest": {
"moduleNameMapper": {
"\\.(css|scss)$": "<rootDir>/__mocks__/styleMock.js"
}
}
}
とともに __mocks__/styleMock.js
はこのように見えます。
module.exports = {};