iT邦幫忙

2024 iThome 鐵人賽

DAY 16
0
Software Development

程式淨化計畫:痛苦是重構的起源!系列 第 16

什麼是測試驅動開發(Test Driven Development)

  • 分享至 

  • xImage
  •  

流程

當我們與使用者討論完需求, 並整理成需求清單, 則可依照清單做測試開發.
假設如下圖1, 有3筆需求, 我們先為第一筆需求撰寫會失敗(紅燈)的測試.

圖1
https://ithelp.ithome.com.tw/upload/images/20240930/20128651y8fo7wHbnp.png

接著不斷的完成功能, 直到測試通過(綠燈), 如下圖2. 通過不代表結束, 而是要思考該做哪些重構.
重構是依據之前討論的code smell網站、書籍, 來消除這些smell.

圖2
https://ithelp.ithome.com.tw/upload/images/20240930/20128651Tlv2cqFtvi.png

重構完成後, 接著往下一筆需求, 重複前面的流程, 如圖3.

圖3
https://ithelp.ithome.com.tw/upload/images/20240930/20128651p09UHnAM7B.png

這個開發週期圖, 也稱為TDD Cycle.

優點與缺點

優點

  • 思考該有怎樣的API
  • 思考程式碼該做什麼
  • 得到快速回饋
    • 這也是重構的必備條件.
  • 建立有模組化的程式碼
  • 寫可維護的程式碼
  • 測試就是文件化
    • 這個優點非常重要, 尤其是在第一次接觸某一套系統程式碼, 測試是很好的入門點.

缺點

  • 對初學者較難
    • 試想初學者沒有重構經驗、不知道哪些code smells與設計模式, 導入TDD是件艱難任務.

上一篇
使用 nameof 的重構
下一篇
Clean Code 第1章 - 無暇的程式碼
系列文
程式淨化計畫:痛苦是重構的起源!31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言