本文根據 Codex 官方文檔《Prompting Codex》《Custom instructions with AGENTS.md》整理,資料核對於 2026-11-05。配圖為本站整理的示意圖,不是軟件截圖。本站(bigolab.com)不是 OpenAI 官方網站。安裝與配置見 /guides/codex-getting-started,本文只講怎麼拿 Codex 寫測試。
適用於誰
- 項目有了功能,卻幾乎沒有測試,想補上的人;
- 不知道怎麼給一個函數設計測試用例的人;
- 讓 AI 寫過測試,結果跑不通或者“永遠通過”的人。
結論先說
- 指明要測什麼。 官方示例的做法:IDE 裏選中函數所在的行,用命令面板的 “Add to Codex Thread” 加進對話;命令行裏用
@指明文件,並在提示詞裏說清是哪個函數。 - 讓它跟隨項目已有的寫法。 官方示例的要求是“遵循其他測試裏用的慣例”,測試框架、命名、目錄結構就不會跑偏。
- 說清覆蓋範圍。 官方示例要求覆蓋正常路徑加上邊界情況。
- 讓它運行測試,並報告命令和結果。 官方在 Fix a bug 一節要求它運行檢查並彙報命令與結果,這個習慣同樣適用於測試。
- 能跑通不等於寫對了。 斷言是否有意義,要你自己看。

圖:本站根據 Codex 官方文檔《Prompting Codex》 整理的示意圖
一、動手前:先讓項目告訴它怎麼測
最好的辦法是把測試命令寫進 AGENTS.md。官方 AGENTS.md 頁的示例就是這種寫法,比如“修改 JavaScript 文件後總是運行 npm test”。寫好以後,Codex 每次開工前會讀到它,讀取規則見 /guides/codex-agents-md-how-it-reads。
如果項目裏還沒有任何測試,先問清楚用什麼框架。可以讓它根據 package.json、pyproject.toml 之類的配置文件判斷,再由你確認,而不是讓它自己隨便選一個新框架。
二、4 段可以直接複製的提示詞
方括號裏是要你自己填的內容。
1. 給一個函數寫單元測試
請為 @[文件路徑] 裏的函數 [函數名] 寫單元測試。
要求:
1. 跟隨項目裏現有測試的寫法和目錄約定(可以先看看 [已有測試文件] );
2. 覆蓋正常情況,以及這些邊界:[空值、負數、超長輸入、重複數據];
3. 不要修改被測函數本身;如果你發現函數有 bug,先告訴我,不要擅自改。
寫完後運行這些測試,把命令和結果告訴我。
2. 先列用例,確認後再寫
請先閱讀 @[文件路徑],列出 [函數名] 值得測試的情況,按“正常、邊界、異常輸入”分組,每項一句話。先不要寫代碼。
我確認之後你再生成測試。
先看清單再寫代碼,可以避免它漏掉你關心的場景,也可以讓你補充業務上才知道的規則。
3. 讓測試失敗的先別急着改
剛才運行測試有 [N] 個失敗。請逐個分析:是測試寫錯了,還是被測代碼確實有問題?給出判斷依據。
不要為了讓測試通過而放寬斷言或刪除用例。需要改被測代碼的地方,先告訴我你的理由。
[粘貼失敗輸出]
4. 補回歸測試
我們剛修復了 [bug 描述]。請添加一條迴歸測試:在修復之前會失敗,修復之後會通過。放在 [測試文件] 裏,跟隨已有寫法。
請說明你是怎麼確認它“修復前會失敗”的。
測試和修復一起做的方法見 /guides/codex-fix-bug-error-repro-prompt。
三、檢查 AI 寫的測試

圖:本站整理的示意圖
- 斷言有沒有意義:好測試檢查的是行為(輸入某值,得到某結果),而不是把實現照抄一遍;
- 故意改壞試試:把被測函數里的一個判斷改反,測試應該失敗;如果還是通過,說明測試沒起作用;
- 看有沒有改動原有測試:特別是“為了讓測試通過”而刪除用例、放寬斷言;
- 數據:不要把真實用戶數據、密鑰寫進測試,用虛構數據;
- 運行環境:讓它說清是在什麼命令下通過的,自己也運行一遍;
- 權限:測試可能需要聯網、寫文件,遇到審批請求時按需決定,見 /guides/codex-permissions-sandbox。
四、不同類型的代碼,測試怎麼提
下面是通用的測試經驗,不是官方規定:
- 純函數(輸入決定輸出,如價格計算、字符串處理):最適合先寫,用例清楚,要求覆蓋邊界值,比如零、負數、空字符串、很大的數;
- 帶數據庫或網絡的代碼:讓它說明怎麼隔離外部依賴,比如用假數據或模擬對象,不要在測試裏連接真實的生產數據庫,也不要調用會產生費用的真實接口;
- 頁面組件:先說清你想驗證的是顯示內容還是點擊行為,再讓它選合適的測試方式,項目裏已有的寫法優先;
- 異步或時間相關的邏輯:提醒它避免依賴當前時間和隨機數,否則測試時好時壞,難以排查。
不確定該怎麼測時,可以直接問它:“這段代碼最容易出錯的 3 個地方是什麼?各用什麼測試驗證?”拿到回答後,再決定要寫哪些。寫好的測試要留在版本控制裏,由你提交,不要讓它在你沒確認的情況下批量改動其他文件。
常見問題
Q:測試一直失敗,它反覆改怎麼辦?
中斷它,讓它先解釋失敗原因,再決定改測試還是改代碼。反覆試錯會消耗額度,額度規則見 /guides/codex-usage-limits。
Q:它能一次給整個項目補齊測試嗎?
不建議。按模組、按文件分批做,每批你都看一遍、運行一遍,再進下一批。
Q:測試覆蓋率要不要追求 100%?
這是工程取捨,不是官方要求。優先覆蓋核心邏輯和容易出錯的地方。
Q:用 Codex 需要付費嗎?
Codex 隨 ChatGPT 套餐提供,具體額度以官方頁面為準;想了解套餐可以看看 /chongzhi/chatgpt-plus 裏的說明。
參考資料
- Codex 官方文檔:Prompting Codex — https://learn.chatgpt.com/docs/prompting
- Codex 官方文檔:Custom instructions with AGENTS.md — https://learn.chatgpt.com/docs/agent-configuration/agents-md
0 條評論
還沒有評論,來搶沙發~