【ジェスト】

Jest とは?

最終更新:
💡 テスト実行・モック・差分比較をまとめて支援

JavaScriptのテスト実行、モック、スナップショットの比較、カバレッジ計測などを支援するテストフレームワーク。Metaで始まり、2022年にOpenJS Foundationへ移管された。

📌 このページのポイント
書いたテストを実行し、結果を比べるテストの例1 + 2 → 3?Jestで実行期待と実際を比較モック関数を代用呼出しを確認スナップショット保存値と比較カバレッジ実行範囲を計測実行できた範囲と、正しさの保証は別
上の矢印はテストを実行する流れ。下の線は利用できる機能との関係を示し、実行順序ではありません。Jestの通常のスナップショットは画面の写真ではありません。
ひよこ ひよこ
テストフレームワークって何のためにあるの?
ペンギン先生 ペンギン先生
テストコードに書いた条件を自動で確かめる道具だよ。例えば足し算の関数に1と2を渡して、結果が3になるか比べる。書いていない条件まで全て確認したり、不具合がないと保証したりするわけではないんだ
ひよこ ひよこ
Jestは他のテストツールと何が違うの?
ペンギン先生 ペンギン先生
テストの実行に加えて、モック、スナップショット、カバレッジなどをまとめて提供するよ。カバレッジはテストで実行したコードの範囲の指標。高くても、必要な振る舞いを全て確かめたとは限らないんだ
ひよこ ひよこ
ペンギン先生 ペンギン先生
出力したデータ構造などを文字列として保存し、次回の結果と比較する仕組みだよ。通常のスナップショットは画面の写真ではないし、差分が正しい変更かどうかは人が確認する必要があるんだ
ひよこ ひよこ
モックってどういう意味?
ペンギン先生 ペンギン先生
関数などをテスト用の代わりに差し替え、呼び出し方や返す値を調べられる仕組みだよ。例えば外部APIの応答を用意して、成功と失敗の場合を試せる。ただしモックを使ったテストだけでは、本物のサービスとの接続まで確認できないんだ
ひよこ ひよこ
Jestって設定が大変じゃないの?
ペンギン先生 ペンギン先生
単純なJavaScriptなら少ない設定で始められるよ。ただしTypeScriptやJSXの変換、DOM環境などは設定が必要になる。BabelでTypeScriptを変換するだけでは型の検査は行わない。Next.jsでも公式ガイドに沿ってJestを導入・設定するんだ
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Jest」って出てきたら「JavaScriptのテスト実行やモックをまとめたツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Jest」 = 冗談・ジョーク
💬 英語で「冗談」を意味する単語。製品名にも使われているよ

参考資料

← 用語集にもどる