Skip to content

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