本人博客文章網址:https://www.peretang.com/basic-knowledge-of-unit-testing/安全
單元測試, 用於驗證你的應用程序是否能夠按照預期的方式正常運行.ide
主要經過Mock或者Stub機制來隔絕與其餘組件/服務之間的依賴, 控制測試的邊界, 從而針對一個個單獨的類或方法進行代碼檢查與測試.性能
由於每一個單元(類或方法)都是整個系統的基石.單元測試
當實施單元測試時, 雖然短時間來會對生產效率形成影響, 可是因爲實施單元測試後, 項目的質量會獲得提高, 從而避免了後期的維護和修改缺陷的花費, 因此從長遠的角度來講, 實施單元測試有助於提升項目的生產效率.測試
而且因爲實施單元測試, 問題將會被提早找出, 改變了以往沒有單元測試時, 全部問題都集中到項目最後爆發的弊端.spa
從以上幾點咱們能夠得出: 單元測試=提升質量+提升生產效率+下降開發和測試成本+改善工做流程設計
1. 帶來更高的測試覆蓋率: 單元測試能夠很容易地模擬錯誤條件, 模擬各類有可能的狀況, 從而提升代碼的穩健性.調試
2. 提升團隊效率: 單元測試可讓你在"功能測試"前提交 高質量/通過測試的代碼, 避免在總體功能測試時遇到問題, 從而避免須要重複修改.開發
3. 輔助監管: 一組成功的經過的單元測試能夠確認您的代碼能正確運行, 或在你作得不對的時候及時提醒你.get
4. 減小調試: 一組良好的單元測試將會減小調試應用程序來找錯誤的機會與所消耗的時間.
5. 給予重構的信心: 若是沒有單元測試的話, 要證實重構是否成功將會是一件很是困難的事情, 單元測試提供了一個安全網, 爲你的重構提供信心.
6. 找出需改進的部分: 經過管理單元測試, 可找出被測試的代碼是否存在設計上的問題, 是否須要改進代碼, 或是否須要重構.
7. 提供完美的代碼示例: 單元測試能夠完美的提供應用程序中的代碼是如何使用的, 提供給其餘開發人員一個使用示例.
8. 啓用代碼覆蓋率與其餘指標: 提供諸如代碼覆蓋率, 代碼的性能, 應用程序的執行速度等數據.
Stub: 用來模擬一個外部的依賴.
Mock: 用來屏蔽一個外部的依賴.
注意: 在單元測試中咱們總習慣使用這兩種機制來隔絕外部依賴, 可是請避免過分隔絕依賴, 這會致使你的測試完整性下降, 致使當外部的依賴發生改變時, 你的測試代碼也沒有檢測出來.
參考