メインコンテンツへスキップ
Version: 25.x

はじめましょう

次のコマンドで yarn を使用して Jest をインストールします。

yarn add --dev jest

npm の場合は次のように書きます。

npm install --save-dev jest

注意: Jest のドキュメントでは yarn コマンドを使用していますが、 npm を使用することもできます。 yarn コマンドと npm コマンドの違いについて知りたい場合は、 yarnのドキュメントを参照してください。

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 を実行すると、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 を使用する#

To use Babel, install required dependencies via yarn:

yarn add --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: {},
};
**Babel 6 のサポート**

Jest 24 dropped support for Babel 6. We highly recommend you to upgrade to Babel 7, which is actively maintained. However, if you cannot upgrade to Babel 7, either keep using Jest 23 or upgrade to Jest 24 with babel-jest locked at version 23, like in the example below:

"dependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-preset-env": "^1.7.0",
"jest": "^24.0.0"
}

While we generally recommend using the same version of every Jest package, this workaround will allow you to continue using the latest version of Jest with Babel 6 for now.

Webpack を使用する#

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

Parcel を使用する#

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

TypeScript を使用する#

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

yarn add --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 をテストとは別に(またはビルドプロセスの一部として)使用してください。

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

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

yarn add --dev @types/jest