JavaScriptテスティングフレームワークのJestとは


プログラミング勉強日記

2020年10月25日
Babel、Typescript、Node、React、Angularなどで使えるテストの存在を知ったのでまとめる。

Jestとは

 FaceBook社がOSSとして開発しているJavaScriptのユニットテストのためのツール。公式のドキュメントはこちらで日本語のドキュメントもある。
 特別な設定をすることなく、他のライブラリを追加することなく、誰でもすぐにユニットテストを書けるのが特徴。

特徴

 公式ドキュメントにあるようにJestの特徴は以下のようになる。

  • zero config
  • snapshots
  • isolated
  • great api
  • fast and safe
  • code coverage
  • easy mocking
  • great exceptions

zero config

 上でも述べているが、JestはJavaScriptプロジェクトにおいて細かい設定が不要なので、すぐにユニットテストを書くことができる。

snapshots

 テストと一緒にインラインに埋め込んだ状態で表示できるスナップショット機能で大きなオブジェクトを容易に追跡できるテストを作成できる。

isolated(独立的)

 パフォーマンスを最大化するために、別々のプロセスで実行してテストを並列化する。

great api

 itからexpectまで、Jestにはすべてのツールキットが1つにまとまっている。ドキュメント化されてメンテナンスもできている。

fast and safe

 テストが一意なグローバル状態であり、Jestは安全にテストを並列実行することができる。また、開発効率を上げるために前に失敗したテストから実行して、テストファイルの所要時間に基づいて再整理する。

code coverage

 フラグの--coverageを指定することで、追加の設定なしでコードガバレッジを生成する。Jestは最後のテストのファイルを含むプロジェクト全体からコードガバレッジ情報を収集できる。

easy mocking

 Jestはテストにおけるインポートに独自のリゾルバを使用することで、テストコード外のオブジェクトを簡単にモックできる。豊富なモック機能APIでモックされたインポートを利用して、読みやすいテスト構文で関数呼び出しをできる。

great exceptions

 テストが失敗したときの理由をわかりやすく表示する。

参考文献

第1回 環境の準備とテストの実行
公式ドキュメント