測試驅(qū)動開發(fā)(Test Driven Development,以下簡稱TDD)
TDD具體是什么,怎么寫,可以看看喵神的博客。因?yàn)檫@本書里大部分內(nèi)容都是詳細(xì)在說怎么寫,但我覺得喵神的博客更加簡潔明了。所以這里只記錄下書中對于TDD的一些建議
1. TDD的4個步驟

image.jpeg
- 寫一個失敗的測試
- 讓他通過
- 重構(gòu)
- 重復(fù)
2.TDD的好處是什么
TDD 是確保軟件正常工作并在未來繼續(xù)正常工作的唯一最佳方式
3. 你應(yīng)該測試什么
- 測試那些沒法被自動化方式找到bug的代碼
- 不要測系統(tǒng)方法,或者系統(tǒng)自動生成的代碼
- 不要測編譯器能發(fā)現(xiàn)的錯誤
- 不要測試依賴庫的bug,比如第三方框架,這應(yīng)該是它們自己負(fù)責(zé)
4. 測試target的目錄組織

image.jpeg
5. 測試
XCTAssert functions:一堆xct開頭的方法
UIViewController testing:測試vc不測view,因?yàn)檫@是ui automation test做的事,我們測的是邏輯狀態(tài)

image.jpeg
勾上這個,測試就會在app的上下文中運(yùn)行,你就可以獲取到UIApplication對象和整個view層級了
Code Coverage: 這里可以打開,代碼覆蓋率

image.jpeg
打開后就能在測試報告中看到了

image.jpeg
這時候代碼右邊的色塊里的數(shù)字表示這行代碼在測試中跑了幾遍,虛線的紅色塊,表示這行代碼只有部分執(zhí)行了
Test debugging
測試也是可以加斷點(diǎn)調(diào)試的

image.jpeg
6.TDD思路
TDD需要你在寫代碼之前理清思路,想好自己要做什么,可以列下來,挨個通過TDD的方式完成,比如你需要一個可以下載圖片的類ImageClient,則可以根據(jù)以下思路來完成TDD
- 創(chuàng)建一個類ImageClient。
- 創(chuàng)建圖像加載的協(xié)議。
- 從 URL 下載image。
- 根據(jù) URL 緩存image。
- 能直接給UIImageView通過設(shè)置URL的方式讓它顯示網(wǎng)絡(luò)圖片
- 能使用ImageClient顯示image。