【JavaScript】テストツールJestの紹介

 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はテスト関数がソースコードの内のどこをどれだけをカバーしているか表示し、レポートを出力します。完璧にする必要はありませんが、漏れが多いとバグが残ってる公算が大きいです。このためテストすべき点がどこに残っているのか、次にチェックする点は何か、とやることの指針になります。見た目も気持ちがいいです。

下図の黄色が分岐の都合で通っておらずテストされていないコード部です。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG