總體來說,這本書是不錯的。後面的第二部分和第三部分,主要針對Test Smells和Test Patterns進行了更加具體的描述,主要的內容和第一部分還是基本一致的。因此,我主要的精力都花在了第一部分,對於後面的第二部分和第三部分,我是跳著看完的。後面的內容當作字典來查詢會比較好,因為寫的比較詳細。
其中有一個觀點我覺得是比較新穎的,如果你分不清現在做的測試是不是屬於單元測試,就請參照一下下面的吧:
A test is not a unit test if:
- It talks to the database.
- It communicates across the network.
- It touches the file system.
- It can’t run correctly at the same time as any of your other unit tests.
- You have to do special things to your environment (such as editing config files) to run it.
在講到代碼的可測性設計時,作者提出主要從以下幾個方面來提高可測性:
Dependency Injection
依賴注入,代碼設計中並不依賴於具體的實現,並且運行將特定的實現注入到系統中。注入主要有三種方式:
- Parameter Injection
- Constructor Injection
- Setter Injection
Dependency Lookup
依賴尋找,運行時動態尋找到所依賴的具體對象。
Humble Object
這個名稱很抽象,我的理解是在代碼中提供一些介面出來,方面測試。
Test Hook
在代碼中加入一些測試邏輯,比如,如果是測試模組,就怎麼怎麼樣。不過,我想這種方式應該是不值得推薦的。
最後,很欣慰在春節前把這本書看完了,可以說收穫還是蠻大的。以後遇到什麼問題,可以拿這本書當資料來查。xUnit Test Patterns的官方地址如下:
http://xunitpatterns.com/
可以在這個地址查詢到每個測試模式和相關的名稱解釋。