雖然之前寫過了單元測試入門,但這一篇會有更整體的介紹。
何時寫測試
- 對於已經上線的系統來說,單元測試是重要但不那麼急迫的事,線上的使用者已經幫你測試過邏輯。
- 在修正 Bug 時,或需要修改程式時,再加入 Unit Test,會是比較有效率的方式。
- 只關注真正需要測試的部分。 (怎麼分辨哪些需要測試,可能需要更多的經驗)
- 盡量簡化邏輯,簡單到不需要測試。
參考資料:蜀道難,難於寫測試? — 關於測試的三點提示 - Kuma老師的軟體工程教室 - Medium
測試的類型有哪些
- 單元測試:針對單一方法進行的測試,保護程式不會在系統維護的過程中被破壞。如果程式的架構寫得漂亮,盡可能符合 SOLID 原則,那麼單元測試會比較容易撰寫。
- 整合測試:整合多種資源進行測試,確保模組與模組之間能正常溝通與運作。
- 端對端測試:從使用者 (客戶端) 的角度,對真實系統 (系統端) 進行測試。
參考資料:一次搞懂單元測試、整合測試、端對端測試之間的差異 - The Will Will Web
系列文章
- C# 的單元測試教學:【Unit Test】Day 1 - 為何要寫單元測試 - 程式隨筆
- ASP.NET MVC 怎麼寫測試:ASP.NET MVC 單元測試系列 (1):新手上路 / 開始撰寫! - The Will Will Web
- Legacy Code 的插管治療法 (最少調整的狀況下,使既有程式具備可測試性):C# Test Legacy Code(1)Isolated by Inheritance and Override by joeychen - CodeData
其他參考資料
- 觀念、如何在 Java 進行單元測試:【單元測試】改變了我程式設計的思維方式 by pcbill - CodeData
- 如何寫出好的測試程式,特別可以看 Stub 和 Mock 的章節:撰寫單元測試的最佳做法 - .NET - Microsoft Learn
- 測試靜態方法:3 Amazing Ways to Unit Test Code That Calls Static Method in C#