Snapshot Test
快照測試
01你是不是遇到這個 / THE SYMPTOM
我有個元件(或一段函式輸出)的內容很長,想確認「它每次產出的結果跟上次一模一樣,有變我要馬上知道」,但又懶得一個欄位一個欄位手動寫斷言。
↑ 如果你點頭了,你要的關鍵字就是 Snapshot Test。
02這是什麼 / DEFINITION
第一次跑測試時把輸出(元件渲染結果、JSON、字串)存成一份「快照」檔,之後每次比對新輸出和那份快照是否一致;不一致就讓測試失敗,提醒你確認這個改變是不是故意的。
03什麼時候用 / WHEN TO USE
輸出結構大又穩定(React 元件 render、序列化結果、設定檔產物),想低成本守住「沒有意外改動」時很合適。
04怎麼跟 AI 說 / HOW TO ASK
直接複製這句、貼進 Claude Code / Cursor / Copilot / ChatGPT:
幫我用 Jest 的 toMatchSnapshot 為這個 React 卡片元件寫快照測試,第一次跑時建立快照,之後輸出有變就讓測試失敗。
05常見坑 / WATCH OUT
⚠ 最大陷阱是「無腦更新快照」——每次紅了就 `--updateSnapshot` 等於沒測。快照只說「變了」不說「對不對」,不適合放會頻繁變動或含時間/隨機值的輸出,否則一直假性失敗。
06相關的詞 / RELATED