JestはシンプルでリッチなJavaScript用テストツールです。
Jest · 🃏 Delightful JavaScript Testing
Getting Started · Jest
例によってnpmでインストールです。
npm install --save-dev jest
使い方はプロジェクトルートに設定ファイルjest.config.jsを置いてnpmスクリプトに好きなオプション(–coverageと–verboseはあると開発の指針になります)をつけて登録、実行するのがおすすめです。
// jest.config.js module.exports = { moduleFileExtensions: [ 'ts', 'js', ], testMatch: [ '**/tests/**/*.test.(ts|js)', ], };
// package.json
{
"scripts": {
"test": "jest --forceExit --coverage --verbose"
}
}
実行するとコンフィグのtestMatch欄に合っているファイル内部のtest関数が走り出します。
// sum.js function sum(a, b) { return a + b; } module.exports = sum; // sum.test.js const sum = require('./sum'); test('1+2=3が成立する', () => { // これが実行されます。第一引数はテスト内容の説明なので日本語でOK expect(sum(1, 2)).toBe(3); });
jestにはいくつかオプションがあります。–verboseと–coverageはおすすめです。
Jest CLI Options · Jest
–verboseはどのテスト関数がパスしたか失敗したかを表示します。ないとファイル単位でしか結果がわからずとても不便です。
–coverageはテスト関数がソースコードの内のどこをどれだけをカバーしているか表示し、レポートを出力します。完璧にする必要はありませんが、漏れが多いとバグが残ってる公算が大きいです。このためテストすべき点がどこに残っているのか、次にチェックする点は何か、とやることの指針になります。見た目も気持ちがいいです。
下図の黄色が分岐の都合で通っておらずテストされていないコード部です。