コードの変換
Jest はプロジェクト内のコードを JavaScript として実行しますが、Node でサポートされていない構文 (JSX、TypeScript、Vue のテンプレート) を使用している場合は、ブラウザ用にビルドする場合と同様に、コードをプレーンな JavaScript に変換する必要があります。
Jest は、このような変換を transform
設定オプションによりサポートしています。
transformer はソースファイルを変換するメソッドを提供するモジュールです。 たとえば、まだ Node ではサポートされていない新しい言語の機 能をモジュールやテストで使用したい場合、将来の JavaScript のバージョンを現在のバージョンにトランスパイルするコードプリプロセッサをプラグインするかもしれません。
Jestは変換の結果をキャッシュし、変換されるファイルのソースや設定の変更など、多くの要因に基づいてその結果を無効にしようとします。
デフォルト
Jest は、1つの transformer – babel-jest
を初めから同梱しています。 これはプロジェクトの Babel 設定を読み込み、/\.[jt]sx?$/
RegExp にマッチするすべてのファイル (言い換えると、すべての .js
、.jsx
、.ts
、 .tsx
ファイル) を変換します。 さらに、babel-jest
は ES Module moking で説明した mock hoisting に必要な Babel プラグインを注入します。
tip
追加のコードプリプロセッサと併用したい場合、次のように、デフォルトの babel-jest
transformer を明示的に含めることを忘れないでください。
"transform": {
"\\.[jt]sx?$": "babel-jest",
"\\.css$": "some-css-transformer",
}