談一談測試驅動開發(TDD)的好處以及你的理解


DD是指在編寫真正的功能實現代碼之前先寫測試代碼,然后根據需要重構實現代碼。在JUnit的作者Kent Beck的大作《測試驅動開發:實戰與模式解析》(Test-Driven Development: by Example)一書中有這么一段內容:“消除恐懼和不確定性是編寫測試驅動代碼的重要原因”。因為編寫代碼時的恐懼會讓你小心試探,讓你回避溝通,讓你羞於得到反饋,讓你變得焦躁不安,而TDD是消除恐懼、讓Java開發者更加自信更加樂於溝通的重要手段。TDD會帶來的好處可能不會馬上呈現,但是你在某個時候一定會發現,這些好處包括:

- 更清晰的代碼 — 只寫需要的代碼

- 更好的設計

- 更出色的靈活性 — 鼓勵程序員面向接口編程

- 更快速的反饋 — 不會到系統上線時才知道bug的存在

 

補充:敏捷軟件開發的概念已經有很多年了,而且也部分的改變了軟件開發這個行業,TDD也是敏捷開發所倡導的。

 

TDD可以在多個層級上應用,包括單元測試(測試一個類中的代碼)、集成測試(測試類之間的交互)、系統測試(測試運行的系統)和系統集成測試(測試運行的系統包括使用的第三方組件)。TDD的實施步驟是:紅(失敗測試)- 綠(通過測試) – 重構。

在使用TDD開發時,經常會遇到需要被測對象需要依賴其他子系統的情況,但是你希望將測試代碼跟依賴項隔離,以保證測試代碼僅僅針對當前被測對象或方法展開,這時候你需要的是測試替身。測試替身可以分為四類:

- 虛設替身:只傳遞但是不會使用到的對象,一般用於填充方法的參數列表

- 存根替身:總是返回相同的預設響應,其中可能包括一些虛設狀態

- 偽裝替身:可以取代真實版本的可用版本(比真實版本還是會差很多)

- 模擬替身:可以表示一系列期望值的對象,並且可以提供預設響應

Java世界中實現模擬替身的第三方工具非常多,包括EasyMock、Mockito、jMock等。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM