讓 Codex 為一段沒有測試的既有程式碼補上特徵化測試(characterization tests):先讀懂並記錄它『現在實際的行為』(含 bug 也照鎖),系統性覆蓋正常路徑+邊界+錯誤路徑,且絕對不修改被測程式。
替沒測試的舊程式補測試網。重點不是『它該怎樣』而是『它現在實際怎樣』——把當前行為(含怪癖)鎖成測試,專打 null/空/邊界/錯誤路徑,一行都不准改原始碼。之後你才敢放心重構。
[ 登入後可看完整內容 ]何時用:接手 legacy code、準備重構前、或某模組『不敢動因為沒測試』時。為何有效:特徵化測試的精髓是『鎖現狀、不鎖理想』——很多 AI 會自作主張寫『它應該回傳 X』結果測試一跑就紅。這個 prompt 三度強調『assert 實際輸出、不是你以為的輸出』,連 bug 都照鎖(加 NOTE 註解留給人決定),並硬性禁止改被測程式+要求貼測試通過輸出。如此產出的測試網才真的能在你重構時抓回歸。技巧:在 Codex 用 workspace-write 沙箱讓它能實際跑 code 取得真值再 assert;它最後會列『故意沒覆蓋的缺口』和『疑似 bug(沒修)』,這兩份清單本身就很有價值。
// src/pricing.test.ts — characterization tests for calcTax() test('applies 5% for standard rate', () => expect(calcTax(100,'std')).toBe(105)) test('returns input unchanged for unknown rate code', () => expect(calcTax(100,'???')).toBe(100)) // NOTE: current behavior may be a bug — locked for now test('negative amount yields negative tax (not clamped)', () => expect(calcTax(-100,'std')).toBe(-105)) test('throws on null amount', () => expect(() => calcTax(null,'std')).toThrow(TypeError)) $ vitest run src/pricing.test.ts ✓ 4 passed Suspected bugs (not fixed): 負數金額未夾零、未知 rate code 靜默回傳原值不報錯。 Coverage gaps left: 未測 currency rounding(需 i18n 環境、另案處理)。
以上為此 Prompt 丟進 Claude Code / Codex 後可得到的描述性成果,實際畫面會因填入的變數而有差異。
這組 prompt 專為 Claude Code / Codex 設計。把 prompt 內 2 個方括號 [變數] 換成你自己的內容,貼進 Claude Code / Codex 執行即可。難度中等,照變數說明填好後即可上手。
完整 prompt 免費。註冊並登入 PromptCraft 帳號即可複製、收藏與留言,不需付費。
prompt 文字本身你可自由使用與修改。但 AI 生成物(圖/音樂/影片/文字)的商用授權,取決於你在 Claude Code / Codex 使用的方案與其官方服務條款,請以該工具的授權規範為準。
Studio engineer 視角拆解 Suno 致命弱點(油炸 vocals、高頻 artifact)+ 4 步驟 DAW workflow + Suno Studio 修音 prompt
提案產生器 / 會議處理器 / 內容再利用 / 週五回顧 / 收工 reset — 試了 40 個只有這 5 個沒被丟掉、各省 30+ 分鐘 / 次。
適合:部落格、Medium、Notion 公開頁、Substack — 任何支援 iframe / HTML 嵌入的地方。對方點「看完整」會回到本站、是 prompt 庫的免費 backlink。
<iframe src="https://prompt.luvai.net/embed/codex-characterization-tests-legacy-code" width="100%" height="380" frameborder="0" style="border:1px solid #e0dcd0;border-radius:4px;" loading="lazy" title="PromptCraft Embed"></iframe>