プログラミング勉強日記
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
テストが失敗したときの理由をわかりやすく表示する。