測試驅動開發(TDD)入門與實作教學
測試驅動開發(Test-Driven Development,簡稱 TDD)是一種軟體開發方法:先寫出會失敗的測試案例,再撰寫讓測試通過的程式碼,最後重構。目標是快速反饋、提升程式碼品質、推動簡單設計。
TDD 的基本步驟
TDD 的開發循環遵循「紅-綠-重構」模式:
- 紅色階段(Red):先寫一個會失敗的測試。這個測試對應你想實作的下一個功能。
- 綠色階段(Green):寫足夠讓測試通過的程式碼。不追求完美,只要通過即可。
- 重構階段(Refactor):整理程式碼,改善結構與設計,同時確認所有測試仍然通過。
使用 C# 實作 TDD
以下用一個簡單的 C# 範例,走完 TDD 的完整流程。
前提條件
確保開發環境已安裝 .NET Core SDK,並熟悉基本的 C# 與單元測試。
實作步驟
目標:開發一個類別庫,計算兩個整數的和。
步驟 1:建立新的方案
1 | dotnet new sln -n TDDExample |
步驟 2:加入類別庫專案與測試專案
1 | dotnet new classlib -n CalculatorLibrary |
步驟 3:紅色階段
在 CalculatorLibrary.Tests 專案新增測試案例,測試加法函式。此時 Calculator 類別尚未存在,執行 dotnet test 會編譯失敗——這正是 TDD 要的起點。
1 | using Xunit; |
步驟 4:綠色階段
在 CalculatorLibrary 專案實作 Calculator 類別與 Add 方法,讓測試通過即可。
1 | namespace CalculatorLibrary { |
步驟 5:執行測試
1 | dotnet test |
確認測試通過後再繼續。
步驟 6:重構階段
以這個例子而言,Add 本身已夠簡單,不需要特別整理。實務上重構的時機是:命名不清楚、邏輯重複、方法過長、類別職責混雜。例如若之後新增了 Subtract、Multiply,卻發現每個方法都重複做邊界檢查,這時就抽出一個私有方法統一處理——重構前跑測試,重構後再跑一次,確認沒有破壞現有行為。
重構是持續的小整理,不是大改版。
結語
TDD 的節奏一開始會顯得慢,原本先寫實作的習慣要調整。但強迫自己先想清楚「這段程式碼應該做到什麼」,往往能在動手前就發現設計問題,後期反而少改很多。
本部落格所有文章除特別聲明外,均採用CC BY-NC-SA 4.0 授權協議。轉載請註明來源 kyosora 筆記!
評論




