作用:
1,從代碼層面去測(cè)試程序是否可靠
2,重構(gòu)代碼時(shí),保證了輸入和輸出的正確性
3,單元測(cè)試,可以保持功能的顆粒度相對(duì)較小
TDD:
Test Driven Development 測(cè)試驅(qū)動(dòng)開發(fā)
測(cè)試代碼先行,通過需求分析,設(shè)計(jì)測(cè)試用例。通過豐富的測(cè)試用例,來編寫單元測(cè)試代碼。通過完整并且健壯的單元測(cè)試再進(jìn)行功能的開發(fā)。這樣功能代碼則是可靠的,并且在方法修改后,可以通過單元測(cè)試反復(fù)驗(yàn)證代碼的可靠性。但也會(huì)引發(fā)一些問題,單元測(cè)試代碼通常是功能代碼的兩倍之上,會(huì)增加相當(dāng)大的工作量。在方法約定發(fā)生改變時(shí),相應(yīng)的單元測(cè)試也需要進(jìn)行修改。

TIM圖片20180608135352.jpg
測(cè)試先行
將需求分解,針對(duì)每一個(gè)小的單元設(shè)計(jì)測(cè)試用例,編寫測(cè)試代碼實(shí)現(xiàn)業(yè)務(wù)代碼
實(shí)現(xiàn)業(yè)務(wù)代碼,并讓業(yè)務(wù)代碼通過測(cè)試重構(gòu)代碼
將業(yè)務(wù)代碼進(jìn)行重構(gòu),優(yōu)化業(yè)務(wù)代碼
KeyTips:
- 保持單元測(cè)試的獨(dú)立性
- 不要濫用斷言(Assert)
- 每個(gè)測(cè)試只有一個(gè)邏輯性的斷言(Assert)
- 一次單元測(cè)試只測(cè)試一個(gè)模塊
- 剔除外部服務(wù)和狀態(tài),不依賴于過多的服務(wù)
- 保持單元測(cè)試名稱的清晰以及一致性
- 單元測(cè)試不是覆蓋所有的手動(dòng)測(cè)試
方法類型:
無引擎交互
引擎交互(數(shù)據(jù)庫(kù)交互)
Mock數(shù)據(jù)
引擎交互(增/改)
Assert 邏輯
清楚Mock數(shù)據(jù)(刪除)