生活分享
Claude Code|除錯與補測試
從重現問題走到修正與回歸測試。這篇用一個刻意準備的待辦錯誤,示範如何把症狀轉成重現步驟、定位原因、補測試並驗證修正。材料中的問題是勾選一筆待辦時改到其他項目;你會先看到預期失敗,再確認修正後同一案例通過,避免只憑「看起來正常」就結束除錯。
閱讀時間約 5 分鐘

這篇用一個刻意準備的待辦錯誤,示範如何把症狀轉成重現步驟、定位原因、補測試並驗證修正。材料中的問題是勾選一筆待辦時改到其他項目;你會先看到預期失敗,再確認修正後同一案例通過,避免只憑「看起來正常」就結束除錯。
下載刻意錯誤版,在新的資料夾解壓縮。這份材料本來就應有測試失敗,不要拿它覆蓋自己的完成版。啟動方式與練習專案準備Claude Code|準備第一個練習專案取得待辦清單材料,認識檔案及啟動方法。本系列共用一個小型待辦清單網站,讓你在不同功能教學裡看到熟悉的檔案與行為。它使用 HTML、CSS、JavaScript,不需要資料庫、API 金鑰或另外安裝 npm 套件。起始版已能新增、勾選與刪除待辦;後面的練習會加入篩選、儲存和測試,讓你逐步理解 Claude Code 如何協助改動專案。閱讀全文相同,不需要資料庫或第三方套件。
先重現,不急著猜原因
閱讀完整文字說明
除錯與補測試,以流程和文件圖形呈現教學重點。
在錯誤版資料夾執行 npm test,保留第一次失敗的測試名稱與預期、實際值。再執行 npm start,新增兩筆待辦並勾選第一筆,觀察是否第二筆反而改變。這兩種證據分別來自資料測試與使用者介面,能互相對照。
npm test
測試失敗不是這個練習沒裝好,而是指定的起點。若所有測試都通過,先確認是不是開到 starter 或 complete 資料夾;若錯誤是找不到 Node,則先補齊執行環境,還沒進入程式除錯階段。把兩種問題分開處理,才不會修錯方向。
寫出完整重現步驟
這是 bug-toggle 練習材料,勾選項目會改到其他待辦。
重現:新增 A 與 B,勾選 A;預期只有 A 完成,實際狀態不符合。
請先執行 npm test,讀取第一個相關失敗與 model.js、app.js。
先說明根因與最小修正,不要把整個介面重寫,也不要刪除失敗測試。
好的錯誤描述包含起始狀態、操作、預期與實際結果。不要只貼最後一行 AssertionError,也不要直接指示把測試期待改成目前錯誤輸出。測試的用途是守住正確行為,修改它之前應先確認原本期待是否合理。
沿呼叫關係定位
先查 app.js 在勾選時傳入什麼,確認它使用 item.id;再查 model.js 如何比對 id。錯誤版故意把相等條件改成不相等,導致選中項目保持原狀,其他項目反而切換。根因在資料選擇條件,不是瀏覽器顏色或勾選圖示。
| 證據 | 能確認什麼 | 不能單獨證明什麼 |
|---|---|---|
| 畫面勾選異常 | 使用者可重現問題 | 錯誤一定在 CSS |
| app.js 傳入 id | 呼叫端使用穩定識別 | 資料函式一定正確 |
| model.js 比對條件 | 哪些項目會被改動 | 修正後所有介面已驗證 |
| 測試期待與實際值 | 指定行為不符 | 全部功能都失敗 |
如果是自己的真實專案,根因可能不同。不要因為這篇範例修一個符號,就把所有勾選錯誤都歸類為同一原因。沿實際輸入與呼叫關係查證,才能知道應改哪一層。
做最小修正並保留其他資料
以下是正確的切換函式。它建立新陣列,只替符合 id 的項目建立更新物件,其他項目保持原樣。把這個結果與原差異對照,確認只修正必要條件,沒有順便改資料結構或刪除驗證。
export function toggleTodo(items, id) {
return items.map(item => item.id === id
? { ...item, completed: !item.completed }
: item);
}
請 Claude 實作後重跑原本失敗的測試,再跑整套 npm test。單一案例通過能證明原錯誤已被修到;整套測試則確認新增、輸入驗證與刪除沒有回歸。兩次檢查都有目的,不需要在沒有新變更時反覆跑同一組命令湊紀錄。
補一個邊界測試
原測試已涵蓋指定項目與其他項目不變,可以再補「不存在的 id」情境,確認不會誤改任何資料。這個案例與根因直接相關,比只測試函式存在更有價值。下例可存成獨立檔,不需要改原本測試內容。
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { toggleTodo } from '../model.js';
test('不存在的識別碼不會切換任何項目', () => {
const items = [
{ id: 'a', title: '讀書', completed: false },
{ id: 'b', title: '運動', completed: true },
];
assert.deepEqual(toggleTodo(items, 'missing'), items);
});
這個測試也能在錯誤版失敗,因此確實能區分正確與錯誤行為。若你補的測試無論條件寫相等或不相等都通過,就要檢查輸入是否足以觸發差異。好的回歸測試應該能防止同類問題再次出現。
修正前先保存最小輸入與實際輸出,例如兩個不同識別碼、只有其中一個應切換。這比提供整張畫面更容易定位條件判斷。接著補一個不存在識別碼的案例,確認程式不會在找不到目標時誤改全部項目。
如果某個測試只在單獨執行時通過,完整執行卻失敗,先查看共享狀態、測試順序與環境依賴。不要把測試次數增加到偶爾出現綠燈就交付,應找出造成不穩定的條件並保存證據。
最後比較修正前後的差異,確認只改了造成問題的判斷與必要測試。順手重排整份檔案、改變命名或加入新功能,都會增加審查負擔。若確實發現其他問題,另列下一步,不讓本次小修正失去清楚的完成界線。
回到瀏覽器驗證
重新啟動或重新整理同一份修正後網站,新增 A、B、C,分別勾選與取消不同項目,確認每次只有目標改變。再刪除其中一筆,繼續切換剩下項目,驗證刪除造成的顯示位置變化不會影響識別。若你同時開著多份材料,核對伺服器工作目錄與埠號。
記錄修正前的失敗名稱、根因、修改檔案、修正後測試與瀏覽器結果。若只完成自動測試,清楚列出尚未操作的畫面案例,不能把它們寫成已通過。這份紀錄能讓下一位審查者快速理解為什麼修改是必要的。
小練習是加入兩筆相同標題但不同 id 的資料,確認操作仍以 id 為準。完成判準是原失敗可重現、修正範圍清楚、相關測試通過,且瀏覽器中不再改錯項目。接著用Git 與 PRClaude Code|Git、差異審查與 PR檢查差異、整理提交與準備 PR。Claude Code 完成功能後,還需要檢查差異、整理提交並決定如何交給他人審查。本篇用待辦專案示範 Git 工作目錄、暫存區與提交的關係,最後準備一份 Pull Request 說明。你會知道測試通過、本機提交、遠端 PR、合併與部署是不同狀態。閱讀全文整理可供審查的成果。
回 Claude Code 教學總目錄Claude Code 完整教學目錄:從入門到自動化依平台、程度與功能找到需要的教學,從 96 篇文章與共用練習專案逐步完成操作。這個教學中心把 Claude Code 分成 96 個可以獨立閱讀的小題目,從桌面、CLI、網頁與手機開始,再學 MD 規則、常用指令、Skills、MCP 與自動化。你可以依推薦路線循序學習,也可以直接搜尋正在遇到的功能、命令或檔名。目錄依目前公開狀態顯示可閱讀文章。閱讀全文
同主題延伸閱讀
生活分享
Claude Code|建立第一個 mod:在 Claude Code 行程內數工具呼叫
寫一個三檔案的 mod,用驗證器與測試確認它掛上的事件。文件把 mod 定義成多了入口檔的 plugin:入口檔叫 hooks module,Claude Code 在事件發生時呼叫裡面的函式,函式可以觀察、改寫或接手事件。
生活分享
Claude Code|Git Worktree 平行工作
隔離多個任務的檔案與分支。Git Worktree 讓同一儲存庫擁有多個工作目錄,各自使用分支與檔案。本篇會把待辦篩選與文件整理分開,確認兩個 session 不會直接改到彼此的檔案,再把其中一個成果整合回主分支。你也會知道何時可以安全清理工作目錄。
生活分享
Claude Code|雙 Worktree 實作與衝突整合
隔離兩項功能,最後完成整合與回歸。兩個 Claude 工作階段同時編輯專案,最容易出現的問題是互相改到同一份檔案,或各自測試通過、整合後卻失敗。本篇用兩個 Worktree 分別處理篩選預設值與介面文字,故意製造一次小衝突,再完成整合、驗證與清理。你不需要先啟用 Agent Teams。
生活分享
Claude Code|比較流程品質、用量與執行時間
以同一資料集比較兩種工作方法。比較兩種 Claude 工作方法時,不能只挑成功那一次,也不能只看第一個答案有多快。本篇用固定案例、原始紀錄和一致判準,比較品質、重試、等待與人工整合時間,最後寫出有樣本數與限制的報告,而不是保證某個方法一定省錢。
引用本文的文章
最新旅遊情報攻略

情報
2026 韓國楓葉預測:雪嶽山 10 月 20 日、首爾近郊 10 月底、內藏山與漢拏山 11 月上旬
韓國山林廳 2026 年 9 月 22 日公布的楓紅高峰預測:雪嶽山 10 月 20 日,春川、國立樹木園到首爾植物園落在 10 月 28 日到 11 月 2 日,內藏山 11 月 4 日、漢拏山 11 月 6 日,整體比最近 5 年晚約 0.8 天。整理各地楓樹與銀杏的預測日、首爾出發怎麼排,以及出發前去哪裡看即時楓況。2026 年 10 月查證。
- 季節活動
- 自然
- 觀景

攻略胡志明市
胡志明市到頭頓一日遊:白藤碼頭搭高速船、船票與班次,下船就是胡梅纜車與耶穌基督像
人在胡志明市挪一天去頭頓看海:市中心的白藤高速船碼頭搭船,航程 120 分鐘到頭頓的胡梅碼頭,平日成人 320,000 越南盾、週末 350,000,回程末班平日 15:00。下船就是胡梅纜車站,同一條路上有白宮,小山頂上是耶穌基督像。平日一天只有兩班船,整天要從末班船倒推著排。
- 交通
- 行程範例
- 海灘

攻略沖繩
沖繩不開車攻略:單軌只到浦添,美麗海水族館要坐兩個多小時的巴士,回那霸的最後一班直達車 17:22 就開走
不租車的沖繩怎麼移動:那霸市區靠沖繩都市單軌電車(ゆいレール),那霸機場站到終點てだこ浦西 19 站、17 公里、37 分鐘,一日券 1,000 日圓;美麗海水族館有那霸機場直達的高速巴士,單程 2,000 日圓起、官方時刻表上 2 小時上下,下車後還要走 10 分鐘;古宇利島要在今帰仁村役場轉車,當天來回光坐車就六個半小時;回程的最後一班直達車 17:22 就從記念公園前開走(2026 年 9 月查證)。
- 交通
- 行程範例
- 預算
資料來源
- Common workflows · 查證日期:
- Best practices for Claude Code · 查證日期: