Getting Started
次のコマンドで yarn
を使用して Jest をインストールします。
yarn add --dev jest
npm
の場合は次のように書きます。
npm install --save-dev jest
注意: Jest のドキュメントでは yarn
コマンドを使用していますが、 npm
を使用することもできます。 yarn
コマンドと npm
コマンドの違いについて知りたい場合は、 yarnのドキュメントを参照してください。
Let's get started by writing a test for a hypothetical function that adds two numbers. First, create a sum.js
file:
function sum(a, b) {
return a + b;
}
module.exports = sum;
Then, create a file named sum.test.js
. This will contain our actual test:
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 run 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
で必要な依存関係をインストールしてください。
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のドキュメントを見てください。
Making your Babel config jest-aware
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 support
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 を参照してください。
TypeScript を使用する
Jest supports TypeScript, via Babel. First make sure you followed the instructions on using Babel above. Next install the @babel/preset-typescript
via yarn
:
yarn add --dev @babel/preset-typescript
Then add @babel/preset-typescript
to the list of presets in your babel.config.js
.
// babel.config.js
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
+ '@babel/preset-typescript',
],
};
しかしながら、BabelでTypeScriptを使うにはいくつか警告が存在します。 Because TypeScript support in Babel is transpilation, Jest will not type-check your tests as they are run. If you want that, you can use ts-jest.