メインコンテンツへスキップ
Version: 28.0

はじめましょう

お気に入りのパッケージマネージャーを使用して Jest をインストールします。

npm install --save-dev jest

2つの数値を加算する関数のテストを書くことから始めてみましょう。 まずsum.js ファイルを作成します。

function sum(a, b) {
return a + b;
}
module.exports = sum;

その後、sum.test.js というファイルを作成します。 このファイルに実際のテストが含まれます。

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});

package.json に以下を追加します。

{
"scripts": {
"test": "jest"
}
}

最後に、yarn test または npm test を実行すると、Jest は以下のメッセージを表示します。

PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

あなたは Jest を使用して、最初のテストを書き、うまくいきました!

このテストは expect と、 toBe を使用し、2 つの値が同じかテストしました。 他の Jest でテスト可能なものについては、Using Matcher を参照してください。

コマンドラインからの実行

Jest は、CLI から様々な便利なオプションを付けて、直接実行できます。 (実行するためには、例えば yarn global add jestまたはnpm install jest --global でインストールし、PATH でグローバルに利用可能になっている必要があります。 )

ここでは my-test を Jest で実行し、実行後に OS の通知を表示する方法を示します。 そのとき構成ファイルとして config.json を使用します。

jest my-test --notify --config=config.json

コマンドラインから Jest を実行する方法の詳細については、Jest CLI Options を参考にしてください。

追加設定

基本の設定ファイルを生成する

次のコマンドを実行すると、Jest はあなたのプロジェクトの構成に基づいたいくつかの質問をし、その回答から短いコメント付きの基本の設定ファイルを生成します。

jest --init

Babel を使用する

Babel を使用するために、yarn で必要な依存関係をインストールしてください。

npm install --save-dev babel-jest @babel/core @babel/preset-env

Node.jsの現在のバージョンをターゲットにするためにBabelを定義するには、babel.config.jsというファイルをプロジェクトのルートに作ってください。

babel.config.js
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

Babelの最適な構成はプロジェクトによって異なります。 詳しくはBabelのドキュメントを見てください。

Babelの設定にJestを認識させる

Jest will set process.env.NODE_ENV to 'test' if it's not set to something else. You can use that in your configuration to conditionally setup only the compilation needed for Jest, e.g.

babel.config.js
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.

return {
// ...
};
};

注意:babel-jest はJestのインストール時に自動的にインストールされ、Babelの設定がプロジェクト内にあれば自動的にファイルを変換します。 これを避けるには、 transform設定を明示的にリセットして下さい。

jest.config.js
module.exports = {
transform: {},
};

Webpack を使用する

Jestは webpackでアセットやスタイル、コンパイル作業を管理するプロジェクトで使用できます。 webpack は他のツールよりもユニークで挑戦的な機能を提供しています。 具体的な使い方は webpack guide を参照してください。

Parcel を使用する

Jestは parcel-bundleで webpack と同様にアセットやスタイル、コンパイル作業を管理するプロジェクトで使用できます。 Parcelは設定が不要です。 使用を開始するには公式ドキュメントを参照してください。

TypeScript を使用する

babel 経由で

Jest は Babel 経由で TypeScript をサポートしています。 まず、 Babelを使用するを確認してください。 次に、@babel/preset-typescript をインストールします。

npm install --save-dev @babel/preset-typescript

最後に、@babel/preset-typescriptbabel.config.js 内のプリセットのリストに追加してください。

babel.config.js
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
'@babel/preset-typescript',
],
};

BabelでTypeScriptを使う場合、いくつかの注意事項があります。 BabelはTypescriptを純粋なトランスパイルによりサポートしているため、Jestはテストの実行時にテストコードの型検査を行いません。 型検査を行いたい場合、代わりに ts-jest を使用するか、TypeScriptコンパイラ のtsc をテストとは別に(またはビルドプロセスの一部として)使用してください。

ts-jest 経由で

ts-jestはJest用のソースマップをサポートするTypeScriptプリプロセッサです。こちらを使うことで、TypeScriptで書かれたプロジェクトをJestでテストできるようになります。

npm install --save-dev ts-jest

Type definitions

使用している Jest のバージョンに対応している @types/jest モジュールをインストールしてください。 これにより、テストコードの型付けをより正確に行えるようになります。

@types/* モジュールについては、関連するモジュールのバージョンと一致させることをお勧めします。 例えば、 26.4.0jest を使用している場合は、 26.4.x@types/jest を使用するのが理想的です。 メジャーバージョン(26) とマイナーバージョン(4) が出来るだけ近いものを使用してください。

npm install --save-dev @types/jest