單元測試
測試驅動開發(Test Driven Development)
以程式中最小的邏輯單元為對象,驗證其邏輯正確性
單元測試
測試驅動開發(Test Driven Development)
以程式中最小的邏輯單元為對象,驗證其邏輯正確性
終於輪到小廢物Vito報告惹,請大家鞭小力點QAQ
9.1 TDD三定律
9.1 TDD三定律
(1)沒有測試之前不要寫任何功能代碼
----> 測試先行,後寫功能
9.1 TDD三定律
(1)沒有測試之前不要寫任何功能代碼
----> 測試先行,後寫功能
(2)只編寫恰好能夠體現一個失敗情況的測試代碼
----> 單一性
9.1 TDD三定律
(1)沒有測試之前不要寫任何功能代碼
----> 測試先行,後寫功能
(2)只編寫恰好能夠體現一個失敗情況的測試代碼
----> 單一性
(3)只編寫恰好能通過測試的功能代碼
----> 正確邏輯只有一種
9.1 TDD三定律
(1)沒有測試之前不要寫任何功能代碼
----> 測試先行,後寫功能(原因:先寫功能,會導致測試的邏輯變得很難寫)
(2)只編寫恰好能夠體現一個失敗情況的測試代碼
----> 單一性
(3)只編寫恰好能通過測試的功能代碼
----> 正確邏輯只有一種
9.2 保持測試的整潔
測試帶來的好處
9.2 保持測試的整潔
測試帶來的好處
(1)提升程式碼擴展性。
(2)提升程式碼可維護性,較不怕修改造成額外的缺陷。
9.2 保持測試的整潔
測試帶來的好處
(1)提升程式碼擴展性。
(2)提升程式碼可維護性,較不怕修改造成額外的缺陷。
(3)提升程式碼復用性
(4)實現自動化測試(白箱測試)
9.3 整潔的測試
好的測試可讀性高,其結構簡潔有力,主要可分為三個環節。
9.3 整潔的測試
好的測試可讀性高,其結構簡潔有力,主要可分為三個環節。
(1)構造測試數據
9.3 整潔的測試
好的測試可讀性高,其結構簡潔有力,主要可分為三個環節。
(1)構造測試數據
(2)操作測試數據
9.3 整潔的測試
好的測試可讀性高,其結構簡潔有力,主要可分為三個環節。
(1)構造測試數據
(2)操作測試數據
(3)驗證操作結果是否符合預期
9.3 整潔的測試
好的測試可讀性高,其結構簡潔有力,主要可分為三個環節。
(1)構造測試數據
(2)操作測試數據
(3)驗證操作結果是否符合預期
試舉一例,如page.134的例子
9.3 整潔的測試
public void testGetPageHierarchyAsXml() throws Exception {
makePages(“PageOne”, “PageOne.ChildOne”, “PageTwo”); /*構造*/
submitRequest(“root”, “type:pages”); /*操作*/
assertResponseIsXML();
assertResponseContains(“<name>PageOne</name>”,
“<name>PageTwo</name>”,“<name>ChildOne</name>”);
/*驗證*/
}
9.3.1 面向特定領域的測試語言
代碼清單9-2,展示了為測試構造一種面向特定領域的語言的技
巧,沒有直接使用對系統進行操作的API,而是打造一套包裝這
些API的函數和工具代碼,這樣就更方便編寫測試,寫出來的東
西也更容易閱讀,此正是一種測試語言,可以幫助開發者編寫自
己的測試,也可以幫助後人閱讀測試。
9.3.2 雙重標準
代碼清單9-3 EnvironmentControllerTest.java
@Test
public void turnOnLoTempAlarmAtThreashold() throws Exception {
hw.setTemp(WAY_TOO_COLD);
controller.tic();
assertTrue(hw.heaterState());
assertTrue(hw.blowerState());
assertFalse(hw.coolerState());
assertFalse(hw.hiTempAlarm());
assertTrue(hw.loTempAlarm());
}
9.3.2 雙重標準
代碼清單9-4 EnvironmentControllerTest.java(重構後) (操作、驗證)
turn以大寫表示,false以小寫表示,以簡化程式碼。
9.3.2 雙重標準
代碼清單9-5 EnvironmentControllerTest.java(擴大到更大範圍) (操作、驗證)
9.3.2 雙重標準
代碼清單9-6 MockControlHardware.java (構造)
9.4 每個測試一個斷言
每個測試只測試一個概念,像9-8的例子就應該拆成3個測試。
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
(1)快速(Fast) : 若測試效率差,就會懶得用,懶的用就有可能漏測,且維護程式碼較不易。
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
(1)快速(Fast) : 若測試效率差,就會懶得用,懶的用就有可能漏測,且維護程式碼較不易。
(2)獨立(Independent) : 當測試相依性高時,頭一個沒過,可能導致後面一拖拉庫失敗,就會 診斷困難。
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
(1)快速(Fast) : 若測試效率差,就會懶得用,懶的用就有可能漏測,且維護程式碼較不易。
(2)獨立(Independent) : 當測試相依性高時,頭一個沒過,可能導致後面一拖拉庫失敗,就會 診斷困難。
(3)可重複(Repeatable) : 測試應當可在任何環境下重複運行 。
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
(1)快速(Fast) : 若測試效率差,就會懶得用,懶的用就有可能漏測,且維護程式碼較不易。
(2)獨立(Independent) : 當測試相依性高時,頭一個沒過,可能導致後面一拖拉庫失敗,就會 診斷困難。
(3)可重複(Repeatable) : 測試應當可在任何環境下重複運行 。
(4)自足驗證(Self-Validating) : 測試應該boolean值輸出,無論通過與否。
9.5 F.I.R.S.T.
整潔的測試遵循以下 5個規則
(1)快速(Fast) : 若測試效率差,就會懶得用,懶的用就有可能漏測,且維護程式碼較不易。
(2)獨立(Independent) : 當測試相依性高時,頭一個沒過,可能導致後面一拖拉庫失敗,就會 診斷困難。
(3)可重複(Repeatable) : 測試應當可在任何環境下重複運行 。
(4)自足驗證(Self-Validating) : 測試應該boolean值輸出,無論通過與否。
(5)及時(Timely) : 測試必須先寫,因為後寫的話, 可能會發生某些程式碼難以寫測試,反而更費時 。
9.6 總結
9.6 總結
(1)主要架構依序[構造]、[操作]、[驗證]
9.6 總結
(1)主要架構依序[構造]、[操作]、[驗證]
(2)測試必須先行,因為這樣比較潮
9.6 總結
(1)主要架構依序[構造]、[操作]、[驗證]
(2)測試必須先行,因為這樣比較潮
(3)依照[一個測試只測試一個概念]的原則進行,不要將多個測試寫在一起。
9.6 總結
(1)主要架構依序[構造]、[操作]、[驗證]
(2)測試必須先行,因為這樣比較潮
(3)依照[一個測試只測試一個概念]的原則進行,不要將多個測試寫在一起。
(4)設定團隊準則,這樣相互才看得懂
9.6 總結
(1)主要架構依序[構造]、[操作]、[驗證]
(2)測試必須先行,因為這樣比較潮
(3)依照[一個測試只測試一個概念]的原則進行,不要將多個測試寫在一起。
(4)設定團隊準則,這樣相互才看得懂,方便抄襲XDD

More Related Content

PDF
12. 除錯、測試與效能
ODP
PHPUnit slide formal
PDF
嵌入式測試驅動開發
PPTX
Net调试
ODP
PHPUnit
PDF
除錯、測試與效能
PPT
2014/02: 嵌入式測試驅動開發
PDF
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013
12. 除錯、測試與效能
PHPUnit slide formal
嵌入式測試驅動開發
Net调试
PHPUnit
除錯、測試與效能
2014/02: 嵌入式測試驅動開發
Efficient JavaScript Unit Testing (Chinese Version), JavaOne China 2013

More from HopenglishRD (6)

PPTX
人月神話Ch.13 整體部分 Ch.14 禍起蕭牆
PDF
人月神話 - 未雨綢繆&干將莫邪
PPTX
人月神話_畫蛇添足&貫徹執行
PPTX
Jira實用(一)
PPTX
猴子也能懂的Node.js
PPTX
20160809 希平方研發部分享 selenium自動化測試簡介
人月神話Ch.13 整體部分 Ch.14 禍起蕭牆
人月神話 - 未雨綢繆&干將莫邪
人月神話_畫蛇添足&貫徹執行
Jira實用(一)
猴子也能懂的Node.js
20160809 希平方研發部分享 selenium自動化測試簡介
Ad

Recently uploaded (20)

PPTX
查開房|查開房【官网cha78.com】查開房|查開房【官网cha78.com】
PPTX
社工库查询系统|社工库查询系统【官网cha78.com】社工库查询系统|社工库查询系统【官网cha78.com】
PPTX
社工库泄漏|社工库泄漏【官网cha78.com】社工库泄漏|社工库泄漏【官网cha78.com】
PPTX
不免費社工庫|不免費社工庫【官网cha78.com】不免費社工庫|不免費社工庫【官网cha78.com】
PPTX
kf记录查询|kf记录查询【官网cha78.com】kf记录查询|kf记录查询【官网cha78.com】
PPTX
查开房记录靠谱吗?|查开房记录靠谱吗?【官网cha78.com】查开房记录靠谱吗?|查开房记录靠谱吗?【官网cha78.com】
PPTX
开房记录查询软件|开房记录查询软件【官网cha78.com】开房记录查询软件|开房记录查询软件【官网cha78.com】
PPTX
在线社工库|在线社工库【官网cha78.com】在线社工库|在线社工库【官网cha78.com】
PPTX
开房记录哪里可以查?|开房记录哪里可以查?【cha78.com】开房记录哪里可以查?|开房记录哪里可以查?【cha78.com】
PPTX
AC145VV VGGgfcvhjhfchjhvvvvbbbvhycfbggcgvvvc
PPTX
明网社工库|明网社工库【官网cha78.com】明网社工库|明网社工库【官网cha78.com】
PPTX
开盒社工库telegram|开盒社工库telegram【官网cha78.com】开盒社工库telegram|开盒社工库telegram【官网cha78.com】
PPTX
微信号社工库|微信号社工库【官网cha78.com】微信号社工库|微信号社工库【官网cha78.com】
PPTX
社工库telegram|社工库telegram【官网cha78.com】社工库telegram|社工库telegram【官网cha78.com】
PPTX
开房记录查询|开房记录查询【官网cha78.com】开房记录查询|开房记录查询【官网cha78.com】
PPTX
社工TG|社工TG【官网cha78.com】社工TG|社工TG【官网cha78.com】
PPTX
社工库查询系统|社工库查询系统【官网cha78.com】社工库查询系统|社工库查询系统【官网cha78.com】
PPTX
开房记录怎么查?|开房记录怎么查?【官网cha78.com】开房记录怎么查?|开房记录怎么查?【官网cha78.com】
PPTX
开房记录查询价格|开房记录查询价格【官网cha78.com】开房记录查询价格|开房记录查询价格【官网cha78.com】
PPTX
开房记录|开房记录【网:cha78.com】开房记录|开房记录【网:cha78.com】
查開房|查開房【官网cha78.com】查開房|查開房【官网cha78.com】
社工库查询系统|社工库查询系统【官网cha78.com】社工库查询系统|社工库查询系统【官网cha78.com】
社工库泄漏|社工库泄漏【官网cha78.com】社工库泄漏|社工库泄漏【官网cha78.com】
不免費社工庫|不免費社工庫【官网cha78.com】不免費社工庫|不免費社工庫【官网cha78.com】
kf记录查询|kf记录查询【官网cha78.com】kf记录查询|kf记录查询【官网cha78.com】
查开房记录靠谱吗?|查开房记录靠谱吗?【官网cha78.com】查开房记录靠谱吗?|查开房记录靠谱吗?【官网cha78.com】
开房记录查询软件|开房记录查询软件【官网cha78.com】开房记录查询软件|开房记录查询软件【官网cha78.com】
在线社工库|在线社工库【官网cha78.com】在线社工库|在线社工库【官网cha78.com】
开房记录哪里可以查?|开房记录哪里可以查?【cha78.com】开房记录哪里可以查?|开房记录哪里可以查?【cha78.com】
AC145VV VGGgfcvhjhfchjhvvvvbbbvhycfbggcgvvvc
明网社工库|明网社工库【官网cha78.com】明网社工库|明网社工库【官网cha78.com】
开盒社工库telegram|开盒社工库telegram【官网cha78.com】开盒社工库telegram|开盒社工库telegram【官网cha78.com】
微信号社工库|微信号社工库【官网cha78.com】微信号社工库|微信号社工库【官网cha78.com】
社工库telegram|社工库telegram【官网cha78.com】社工库telegram|社工库telegram【官网cha78.com】
开房记录查询|开房记录查询【官网cha78.com】开房记录查询|开房记录查询【官网cha78.com】
社工TG|社工TG【官网cha78.com】社工TG|社工TG【官网cha78.com】
社工库查询系统|社工库查询系统【官网cha78.com】社工库查询系统|社工库查询系统【官网cha78.com】
开房记录怎么查?|开房记录怎么查?【官网cha78.com】开房记录怎么查?|开房记录怎么查?【官网cha78.com】
开房记录查询价格|开房记录查询价格【官网cha78.com】开房记录查询价格|开房记录查询价格【官网cha78.com】
开房记录|开房记录【网:cha78.com】开房记录|开房记录【网:cha78.com】
Ad

Clean code 單元測試