課程簡介
測(cè)試驅(qū)動(dòng)開發(fā)訓(xùn)練營以理論講解結(jié)合案例演練,全方位梳理測(cè)試驅(qū)動(dòng)開發(fā)的流程,幫助學(xué)員掌握整潔編碼、單元測(cè)試與重構(gòu)的技巧,從而使得學(xué)員能夠在實(shí)際項(xiàng)目開發(fā)中合理運(yùn)用測(cè)試驅(qū)動(dòng)開發(fā),提高編碼質(zhì)量,打造高效的開發(fā)團(tuán)隊(duì),并在企業(yè)中有效推進(jìn)測(cè)試驅(qū)動(dòng)開發(fā)實(shí)踐。
目標(biāo)收益
培訓(xùn)對(duì)象
課程大綱
第一關(guān) 測(cè)試加油站 |
測(cè)試驅(qū)動(dòng)開發(fā)的基礎(chǔ)是正確地運(yùn)用框架編寫單元測(cè)試。要了解什么是單元測(cè)試,編寫單元測(cè)試的價(jià)值,并能熟練運(yùn)用單元測(cè)試框架。JUnit框架。 ?如何創(chuàng)建測(cè)試方法 ?如何運(yùn)用Rule測(cè)試異常 ?如何運(yùn)用Parameterized Data Mockito ?何時(shí)需要進(jìn)行Mock ?Mock查詢式方法 ?Mock命令式方法 ?Mock異常拋出 ?驗(yàn)證對(duì)象的協(xié)作 測(cè)試數(shù)據(jù)準(zhǔn)備 ?各種格式的測(cè)試數(shù)據(jù) ?模板的使用 ?測(cè)試數(shù)據(jù)準(zhǔn)備的輔助方法 |
第二關(guān) 對(duì)象健身操 |
測(cè)試驅(qū)動(dòng)開發(fā)的驅(qū)動(dòng)力在于任務(wù)分解和測(cè)試先行,但如果不具備足夠的面向?qū)ο笤O(shè)計(jì)能力,就會(huì)影響到對(duì)職責(zé)的判斷,無法做到有效而合理的對(duì)象協(xié)作,也無法判斷該在何時(shí)對(duì)功能進(jìn)行抽象。 OO的核心要素 ?理解封裝的意義 ?高內(nèi)聚松耦合 ?繼承與委派 ?抽象與多態(tài) SOLID原則 ?單一職責(zé)原則 ?開放封閉原則 ?Liskov替換原則 ?接口隔離原則 ?依賴倒置原則 |
第三關(guān) 重構(gòu)工具箱 |
測(cè)試驅(qū)動(dòng)開發(fā)的節(jié)奏是“紅-綠-重構(gòu)”,沒有重構(gòu),測(cè)試驅(qū)動(dòng)開發(fā)就無法保證代碼質(zhì)量,如果不及時(shí)發(fā)現(xiàn)代碼的壞味道,就會(huì)導(dǎo)致“破窗效應(yīng)”,直到代碼腐化至難以重構(gòu)的地步,測(cè)試驅(qū)動(dòng)開發(fā)帶來的紅利就被抵消殆盡了。 代碼的壞味道 ?Long Method ?Feature Envy ?Switch Statement ?迪米特法則 重構(gòu)手法運(yùn)用 ?Rename Method ?Extract Method ?Move Method ?Extract Class ?Push Member Down |
演練 演練案例:Movie Store 第四關(guān) TDD修煉 |
在具備了單元測(cè)試、面向?qū)ο笤O(shè)計(jì)與重構(gòu)知識(shí)之后,就可以開始TDD的訓(xùn)練了。TDD的工作主要分為任務(wù)分解與測(cè)試驅(qū)動(dòng),開發(fā)人員需要進(jìn)行實(shí)戰(zhàn)演練才能真正體會(huì)TDD的好處。本部分將通過一個(gè)完整的案例進(jìn)行實(shí)操訓(xùn)練。 TDD知識(shí) ?TDD核心 ?TDD三大定律 ?FIRST原則 TDD Kata 實(shí)戰(zhàn)案例:Guess Number ?任務(wù)分解 ?開始第一個(gè)任務(wù) ?Specification By Example ?測(cè)試驅(qū)動(dòng)開發(fā)的驅(qū)動(dòng)力 ?Given-When-Then模式 ?CQS原則 ?信息專家模式 ?命名規(guī)則 ?單一職責(zé)原則 ?開始第二個(gè)任務(wù) ?開始第三個(gè)任務(wù) ?開始第四個(gè)任務(wù) ?測(cè)試驅(qū)動(dòng)開發(fā)需要事先設(shè)計(jì)嗎? ?尋找職責(zé)的承擔(dān)者 ?開始第五個(gè)任務(wù) ?運(yùn)用依賴注入框架 |
第五關(guān) 重構(gòu)到模式 |
通過識(shí)別代碼的壞味道,然后利用重構(gòu)手法改進(jìn)代碼,逐步形成設(shè)計(jì)模式,可以有效地避免過度設(shè)計(jì),保證編碼實(shí)現(xiàn)的恰如其分。 常用設(shè)計(jì)模式 ?工廠模式 ?裝飾器模式 ?適配器模式 ?模板方法模式 ?策略模式 ?訪問者模式 ?職責(zé)鏈模式 重構(gòu)到模式實(shí)踐 ?重構(gòu)到策略模式 ?重構(gòu)到模板方法模式 ?重構(gòu)到裝飾器模式 ?重構(gòu)到職責(zé)鏈模式 ?重構(gòu)到MVC模式 ?重構(gòu)到訪問者模式 ?重構(gòu)到適配器模式 |
第一關(guān) 測(cè)試加油站 測(cè)試驅(qū)動(dòng)開發(fā)的基礎(chǔ)是正確地運(yùn)用框架編寫單元測(cè)試。要了解什么是單元測(cè)試,編寫單元測(cè)試的價(jià)值,并能熟練運(yùn)用單元測(cè)試框架。JUnit框架。 ?如何創(chuàng)建測(cè)試方法 ?如何運(yùn)用Rule測(cè)試異常 ?如何運(yùn)用Parameterized Data Mockito ?何時(shí)需要進(jìn)行Mock ?Mock查詢式方法 ?Mock命令式方法 ?Mock異常拋出 ?驗(yàn)證對(duì)象的協(xié)作 測(cè)試數(shù)據(jù)準(zhǔn)備 ?各種格式的測(cè)試數(shù)據(jù) ?模板的使用 ?測(cè)試數(shù)據(jù)準(zhǔn)備的輔助方法 |
第二關(guān) 對(duì)象健身操 測(cè)試驅(qū)動(dòng)開發(fā)的驅(qū)動(dòng)力在于任務(wù)分解和測(cè)試先行,但如果不具備足夠的面向?qū)ο笤O(shè)計(jì)能力,就會(huì)影響到對(duì)職責(zé)的判斷,無法做到有效而合理的對(duì)象協(xié)作,也無法判斷該在何時(shí)對(duì)功能進(jìn)行抽象。 OO的核心要素 ?理解封裝的意義 ?高內(nèi)聚松耦合 ?繼承與委派 ?抽象與多態(tài) SOLID原則 ?單一職責(zé)原則 ?開放封閉原則 ?Liskov替換原則 ?接口隔離原則 ?依賴倒置原則 |
第三關(guān) 重構(gòu)工具箱 測(cè)試驅(qū)動(dòng)開發(fā)的節(jié)奏是“紅-綠-重構(gòu)”,沒有重構(gòu),測(cè)試驅(qū)動(dòng)開發(fā)就無法保證代碼質(zhì)量,如果不及時(shí)發(fā)現(xiàn)代碼的壞味道,就會(huì)導(dǎo)致“破窗效應(yīng)”,直到代碼腐化至難以重構(gòu)的地步,測(cè)試驅(qū)動(dòng)開發(fā)帶來的紅利就被抵消殆盡了。 代碼的壞味道 ?Long Method ?Feature Envy ?Switch Statement ?迪米特法則 重構(gòu)手法運(yùn)用 ?Rename Method ?Extract Method ?Move Method ?Extract Class ?Push Member Down |
演練 演練案例:Movie Store 第四關(guān) TDD修煉 在具備了單元測(cè)試、面向?qū)ο笤O(shè)計(jì)與重構(gòu)知識(shí)之后,就可以開始TDD的訓(xùn)練了。TDD的工作主要分為任務(wù)分解與測(cè)試驅(qū)動(dòng),開發(fā)人員需要進(jìn)行實(shí)戰(zhàn)演練才能真正體會(huì)TDD的好處。本部分將通過一個(gè)完整的案例進(jìn)行實(shí)操訓(xùn)練。 TDD知識(shí) ?TDD核心 ?TDD三大定律 ?FIRST原則 TDD Kata 實(shí)戰(zhàn)案例:Guess Number ?任務(wù)分解 ?開始第一個(gè)任務(wù) ?Specification By Example ?測(cè)試驅(qū)動(dòng)開發(fā)的驅(qū)動(dòng)力 ?Given-When-Then模式 ?CQS原則 ?信息專家模式 ?命名規(guī)則 ?單一職責(zé)原則 ?開始第二個(gè)任務(wù) ?開始第三個(gè)任務(wù) ?開始第四個(gè)任務(wù) ?測(cè)試驅(qū)動(dòng)開發(fā)需要事先設(shè)計(jì)嗎? ?尋找職責(zé)的承擔(dān)者 ?開始第五個(gè)任務(wù) ?運(yùn)用依賴注入框架 |
第五關(guān) 重構(gòu)到模式 通過識(shí)別代碼的壞味道,然后利用重構(gòu)手法改進(jìn)代碼,逐步形成設(shè)計(jì)模式,可以有效地避免過度設(shè)計(jì),保證編碼實(shí)現(xiàn)的恰如其分。 常用設(shè)計(jì)模式 ?工廠模式 ?裝飾器模式 ?適配器模式 ?模板方法模式 ?策略模式 ?訪問者模式 ?職責(zé)鏈模式 重構(gòu)到模式實(shí)踐 ?重構(gòu)到策略模式 ?重構(gòu)到模板方法模式 ?重構(gòu)到裝飾器模式 ?重構(gòu)到職責(zé)鏈模式 ?重構(gòu)到MVC模式 ?重構(gòu)到訪問者模式 ?重構(gòu)到適配器模式 |