使用單元測試可以得到以下好處:
1、提供文檔。單元測試是一種無價的文檔,它是展示函數(shù)或類如何使用的佳文檔。這份文檔是可編譯、可運行的,并且它保持新,永遠(yuǎn)與代碼同步。好的單元測試文檔,它們會指出系統(tǒng)要做什么。測試像原開發(fā)人員留下的記號,可以展示他們的類具體是怎么工作的。
2、改善設(shè)計:編寫測試能改善設(shè)計。測試有助于從界面的角度思考,測試框架也是代碼的客戶。如果確實遵循了“盡量簡單而且行之有效”的原則,不會寫出篇幅達(dá)幾頁的復(fù)雜算法。要測試的代碼通常依賴性更低,而且相互之間沒有緊密的聯(lián)系,因為這樣測試起來更容易,修改起來也會更容易。
3、鼓勵重構(gòu):程序中的每一項功能都是用測試來驗證它的正確性。它為以后的開發(fā)提供支緩。算是開發(fā)后期,也可以輕松的增加功能或更改程序結(jié)構(gòu),而不用擔(dān)心這個過程中會破壞重要的東西。這樣可以更自由的對程序進(jìn)行改進(jìn)。利用一套健壯的測試集,便可以根據(jù)需要放心地進(jìn)行重構(gòu)。同時能保證代碼依然簡潔。
4、提高速度:一個完備的單元測試集提供了一種方法對系統(tǒng)完成回歸測試,這說明,增加一個新特性之后不必因為懷疑它會不會破壞原系統(tǒng)而寢食難安。
5、提供反饋:單元測試還有一個經(jīng)常被忽略的優(yōu)點,即開發(fā)的節(jié)奏。盡管看上去好像無關(guān)緊要,但通過測試之后會有一種完成任務(wù)的成感。不會一下子看到冒出一大堆新的特性,而只是讓代碼每一次前進(jìn)一小步。