單元測試的藝術

書本圖片

The Art of Unit Testing: with examples in C#, 2/e

書本連結

摘要:

本書涵蓋了撰寫單元測試的基本知識,包含如何撰寫單元測試、使用隔離(模擬)框架,以及讓它們變得可維護、可讀、可被信任。並且講解在真實世界撰寫、管理和維護單元測試的最佳實踐。

心得:

第一、二章:
作者示範一個良好的單元測試應該具備哪些條件。
第三、四章:
作者以設計單元測試的角度,引用 Working Effectively with Legacy Code 的接縫技術講解如何透過接縫技術建立偽物件,讓單元測試的受測對象(SUT)可以隔離依賴,達到快速、獨立原則。
接縫技術是針對 Legacy Code 無法執行單元測試的處理手段,由本書的角度來學習接縫技術,會覺得為什麼要繞一大圈只為了產生偽物件(Stub/Mock)。因此建議直接去看 Working Effectively with Legacy Code 如何使用接縫技術讓多種情境的 Legacy Code 可執行單元測試。
第五章:
使用模擬(Mock)框架來取代三、四章節的接縫技術。
覺得此章節的安排不太洽當,
接縫技術是針對 Legacy Code 無法執行單元測試的處理手段,作者卻以取代接縫技術的角度來介紹模擬框架,可能讓讀者誤以為接縫技術是過時的測試手段。
也許是本書出版的年代較早 (1/e: 2009、2/e: 2013),但現今的測試框架搭配模擬框架已經相當普及。若要講解模擬技術時,應該直接講解模擬框架即可,把接縫技術跟模擬技術分開講應該會更好!。
第七、八、九、十、十一章節:
介紹開發團隊在實務中如何進行單元測試,包含如何安排單元測試的檔案、舊系統引入單元測試的策略、如何讓單元測試好維護..等等。
若您的團隊還不了解怎麼進行單元測試,則相當推薦閱讀這些章節。
總結:
本書的深度不深,作者把讀者設定為單元測試的新手,從 0 開始講解單元測試,書中的內容大多是針對不良測試案例的叮嚀。
推薦給想學習單元測試又對單元測試不了解的工程師,本書將單元測試應該具備的概念都教完了,讀過後應該能少走不少歪路。

適合讀者:對單元測試不了解的工程師
可學習議題:單元測試技術
延伸學習:測試驅動開發(TDD)、行為驅動開發(BDD)

留言

這個網誌中的熱門文章

Git Commit Message 這樣寫會更好,替專案引入規範與範例

Gitlab 合併請求 Merge Request 是什麼?

PHP OO 物件導向基礎教學