スナップショットテスト
すなっぷしょっとてすと
Snapshot Test
一言でいうと
「期待される出力」をファイルに記録しておき、変更があれば検知するテスト手法のこと。
詳しい意味
スナップショットテストは、テスト対象が生成する出力(HTML / JSON / 文字列)を「期待される正解」としてファイルに保存しておき、次回以降の実行時に同じ出力が再現されるかを比較するテスト手法です。Jest / Vitest が代表的に対応。React コンポーネントのレンダリング結果、API レスポンスのJSON、CLI ツールの出力など「複雑だが安定しているはず」のものに向きます。実装時の「期待値を手書きするのが面倒」という問題を解決する一方、「壊れた時に意図的なのか不意なのかが判別しづらい」という弱点があり、必ずレビューでスナップショット差分を確認する文化が必要です。
何に使うか
React コンポーネントのレンダリング結果が予期せず変わっていないか確認するとき。APIレスポンスの構造変化を検知したいとき。CLIツールの出力フォーマット安定性を保証するとき。
どんな時に出るか
「スナップショット壊れた」「snapshot更新する?」「-u で snapshot 更新」といった場面で登場します。
具体例
- Reactコンポーネントのレンダリング結果をスナップショットテストで固定し、不意のUI崩れを早期検知している。
- API変更時はスナップショットの差分を必ず人間がレビューする運用にしている。
別名・略称
snapshot test(すなっぷしょっとてすと)snapshot testing(すなっぷしょっとてすてぃんぐ)
関連語
初心者向けメモ
「期待される結果のスクリーンショット」を撮っておくイメージです。次に同じものを撮って前回と並べて見比べ、違いがあれば「あれ?」と気付ける。誰かが意図して変えたのか、不意のバグなのかは、その差分を人間が見て判断します。