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)、行為