浜松のWEBシステム開発・スマートフォンアプリ開発・RTK-GNSS関連の開発はお任せください
株式会社シーポイントラボ
TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:静岡県浜松市中区富塚町1933-1 佐鳴湖パークタウンサウス2F

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

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

  • この記事いいね! (1)