建置與工具
單元測試(unit test)
單元測試(unit test)是一小段程式碼,它唯一的任務,就是檢查你真正的程式碼裡某一小塊有沒有按預期運作。你餵給它一個已知的輸入,說明你期待得到什麼答案,一旦現實和期待對不上,測試就會喊出來。這裡的「單元」(unit)指的是能單獨拿來測的最小的合理單位——通常就是一個函式。
每個單元測試都簡單得不行:「我把 2 和 3 相加,我期待得到 5。」單看一個,簡直簡單到不值得專門去寫。它的回報,來自你有幾百個這樣的測試、並能在幾秒內把它們整批跑完。改動一行程式碼,跑一遍測試,它們立刻告訴你:你是不是悄悄把三個檔案之外的某個東西弄壞了。
這才是它真正的禮物——一張安全網。沒有測試時,每次改動都是一場小賭博:這會不會弄壞什麼?有了測試,你就能放手大膽地改,跑一遍測試套件,然後信任那一排綠色的勾。它們還是會呼吸的文件:讀一個測試,就能清楚看到某段程式碼本該怎麼用。
function add(a, b) { return a + b; }
test("adds two numbers", () => {
expect(add(2, 3)).toBe(5); // pass if add really returns 5
});已知輸入、期待答案——哪天 add 不再回傳 5,測試就會大聲報錯。
把它接進 CI/CD 流水線後,每次推送都會自動跑完整套測試——這樣一個出錯的改動,在別人看到之前就被攔下來了。
又稱
另見