注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計JUnit實戰(zhàn)(第3版)

JUnit實戰(zhàn)(第3版)

JUnit實戰(zhàn)(第3版)

定 價:¥139.80

作 者: [羅馬尼亞]克特林·圖多塞(Catalin Tudose)
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787115578532 出版時間: 2023-06-01 包裝: 平裝-膠訂
開本: 128開 頁數: 字數:  

內容簡介

  本書全面介紹JUnit 5的新特性及其主要應用。全書共22章,分為五部分。部分介紹JUnit 的核心、JUnit的體系結構、從JUnit 4向JUnit 5遷移、軟件測試原則等內容;第二部分介紹軟件測試質量、用stub和mock object進行測試、容器內測試等內容;第三部分介紹用Maven和Gradle工具運行JUnit測試、IDE對JUnit 5的支持、JUnit 5的持續(xù)集成等內容;第四部分介紹JUnit 5擴展模型,表示層測試,Spring、Spring Boot和REST API以及數據庫應用程序的測試等內容;第五部分介紹使用JUnit 5進行測試驅動開發(fā)和行為驅動開發(fā),以及用JUnit 5實現測試金字塔策略等內容。本書既適合剛接觸JUnit框架的Java開發(fā)人員閱讀,也適合想要了解JUnit 5新特性的、經驗豐富的JUnit開發(fā)人員學習,尤其適合企業(yè)級Java開發(fā)人員閱讀。本書還可作為高等院校學生“軟件測試”課程的參考用書。

作者簡介

  克特林·圖多塞(Catalin Tudose),擁有計算機科學專業(yè)的博士學位,擔任過 Java 高級開發(fā)員和技術團隊帶頭人,有超過 15年的 Java 開發(fā)經驗。

圖書目錄

第 一部分 JUnit

第 1章 JUnit起步 3
1.1 證明程序的可運行性 4
1.2 從零開始 5
1.2.1 單元測試框架的規(guī)則 8
1.2.2 添加單元測試 8
1.3 安裝JUnit 9
1.4 使用JUnit測試 11
1.5 小結 13
第 2章 探索JUnit的核心 14
2.1 核心注解 15
2.1.1 @DisplayName注解 17
2.1.2 @Disabled注解 18
2.2 嵌套測試 20
2.3 標記測試 21
2.4 斷言 22
2.5 假設 26
2.6 JUnit 5的依賴注入 28
2.6.1 TestInfoParameterResolver 28
2.6.2 TestReporterParameterResolver 29
2.6.3 RepetitionInfoParameterResolver 30
2.7 重復測試 30
2.8 參數化測試 32
2.9 動態(tài)測試 35
2.10 使用Hamcrest 匹配器 37
2.11 小結 41
第3章 JUnit的體系結構 42
3.1 軟件體系結構的概念和重要性 42
3.1.1 故事一:電話簿 43
3.1.2 故事二:運動鞋制造商 43
3.2 JUnit 4的體系結構 44
3.2.1 JUnit 4模塊化 44
3.2.2 JUnit 4運行器 45
3.2.3 JUnit 4規(guī)則 47
3.2.4 JUnit 4體系結構的缺點 52
3.3 JUnit 5的體系結構 52
3.3.1 JUnit 5模塊化 52
3.3.2 JUnit Platform 53
3.3.3 JUnit Jupiter 53
3.3.4 JUnit Vintage 54
3.3.5 JUnit 5體系結構的全景 54
3.4 小結 56

第4章 從JUnit 4向JUnit 5遷移 57
4.1 從JUnit 4向JUnit 5跨越 57
4.2 所需的依賴項 58
4.3 注解、類和方法 60
4.3.1 等價的注解、類和方法 60
4.3.2 分類和標記 64
4.3.3 遷移Hamcrest匹配器功能 69
4.3.4 規(guī)則與擴展模型 71
4.3.5 自定義規(guī)則 74
4.4 小結 78
第5章 軟件測試原則 79
5.1 單元測試的必要性 79
5.1.1 帶來更高的測試覆蓋率 80
5.1.2 提高團隊的工作效率 80
5.1.3 檢測出衰退跡象和減少調試次數 80
5.1.4 自信地重構 80
5.1.5 改進實現 82
5.1.6 文檔化預期行為 82
5.1.7 啟用代碼覆蓋率和其他指標 83
5.2 測試類型 83
5.2.1 單元測試 84
5.2.2 集成測試 84
5.2.3 系統(tǒng)測試 85
5.2.4 驗收測試 85
5.3 黑盒測試和白盒測試的對比 86
5.3.1 黑盒測試 86
5.3.2 白盒測試 86
5.3.3 黑盒測試和白盒測試的優(yōu)點和缺點 87
5.4 小結 88

第二部分 不同的測試策略


第6章 測試質量 91
6.1 測試覆蓋率度量 91
6.1.1 測試覆蓋率簡介 92
6.1.2 代碼覆蓋率度量工具 93
6.2 編寫易于測試的代碼 96
6.2.1 理解公共API契約 97
6.2.2 減少依賴 97
6.2.3 創(chuàng)建簡單的構造方法 98
6.2.4 遵循迪米特法則 99
6.2.5 避開隱藏的依賴項和全局狀態(tài) 100
6.2.6 優(yōu)先使用泛型方法 101
6.2.7 組合優(yōu)于繼承 102
6.2.8 多態(tài)優(yōu)于條件 102
6.3 測試驅動開發(fā) 104
6.3.1 調整開發(fā)周期 104
6.3.2 TDD的兩個核心步驟 105
6.4 行為驅動開發(fā) 106
6.5 突變測試 106
6.6 開發(fā)周期中的測試 107
6.7 小結 110
第7章 用stub進行粗粒度測試 111
7.1 stub簡介 112
7.2 用stub測試一個HTTP連接 113
7.2.1 選擇stub的使用方案 115
7.2.2 用Jetty充當嵌入式服務器 115
7.3 用stub替換服務器資源 117
7.3.1 構建第 一個stub測試 117
7.3.2 回顧第 一個stub測試 120
7.4 替換連接 120
7.4.1 創(chuàng)建自定義的URL協(xié)議處理器 121
7.4.2 創(chuàng)建一個JDK的HttpURLConnection stub 122
7.4.3 運行測試 123
7.5 小結 124
第8章 用mock object進行測試 125
8.1 mock object簡介 125
8.2 用mock object進行單元測試 126
8.3 用mock object進行重構 129
8.3.1 重構示例 130
8.3.2 重構方面的考慮 131
8.4 模擬HTTP連接 133
8.4.1 mock object的定義 133
8.4.2 示例方法的測試 134
8.4.3 第 一個嘗試:簡單的方法重構技巧 135
8.4.4 第二個嘗試:使用類工廠進行重構 137
8.5 把mocks用作特洛伊木馬 139
8.6 mock框架簡介 141
8.6.1 使用EasyMock 142
8.6.2 使用JMock 146
8.6.3 使用Mockito 150
8.7 小結 153
第9章 容器內測試 154
9.1 標準單元測試的局限性 154
9.2 mock object解決方法 155
9.3 容器內測試的步驟 157
9.3.1 實現策略 157
9.3.2 容器內測試框架 158
9.4 stub、mock object和容器內測試的對比 158
9.4.1 對stub的評價 159
9.4.2 對mock object的評價 159
9.4.3 對容器內測試的評價 160
9.5 用Arquillian進行測試 161
9.6 小結 168

第三部分 運用JUnit 5及其他工具


第 10章 在Maven 3中運行JUnit測試 171
10.1 建立Maven項目 171
10.2 使用Maven插件 174
10.2.1 Maven的Compiler插件 175
10.2.2 Maven的Surefire插件 176
10.2.3 用Maven生成HTML格式的JUnit報告 178
10.3 集成所有 178
10.4 Maven的挑戰(zhàn)性 183
10.5 小結 183
第 11章 在Gradle 6中運行JUnit測試 184
11.1 Gradle簡介 184
11.2 創(chuàng)建Gradle項目 186
11.3 使用Gradle插件 190
11.4 從頭開始創(chuàng)建Gradle項目,再用JUnit 5測試 190
11.5 比較Gradle和Maven 194
11.6 小結 195
第 12章 IDE對JUnit 5的支持 196
12.1 JUnit 5與IntelliJ IDEA集成 197
12.2 JUnit 5與Eclipse集成 202
12.3 JUnit 5與NetBeans集成 206
12.4 JUnit 5與IntelliJ IDEA、Eclipse和NetBeans集成的比較 211
12.5 小結 211
第 13章 JUnit 5的持續(xù)集成 212
13.1 持續(xù)集成測試 212
13.2 Jenkins簡介 214
13.3 團隊實踐持續(xù)集成 217
13.4 配置Jenkins 222
13.5 在CI環(huán)境中處理任務 225
13.6 小結 230

第四部分 使用現代框架和JUnit 5


第 14章 JUnit 5擴展模型 233
14.1 JUnit 5擴展模型簡介 233
14.2 創(chuàng)建JUnit 5擴展 234
14.3 使用可用的擴展點編寫JUnit 5測試 237
14.3.1 將乘客信息持久化到數據庫中 237
14.3.2 檢查乘客的性 246
14.4 小結 248
第 15章 表示層測試 249
15.1 選擇測試框架 250
15.2 HtmlUnit簡介 250
15.3 編寫HtmlUnit測試 252
15.3.1 HTML斷言 252
15.3.2 對特定的Web瀏覽器進行測試 252
15.3.3 對多個Web瀏覽器進行測試 253
15.3.4 創(chuàng)建獨立的測試 254
15.3.5 測試表單 256
15.3.6 測試JavaScript 257
15.4 Selenium簡介 261
15.5 編寫Selenium測試 262
15.5.1 對特定的Web瀏覽器進行測試 264
15.5.2 使用Web瀏覽器測試導航 265
15.5.3 測試多個Web瀏覽器 266
15.5.4 用不同的Web瀏覽器測試Google搜索和導航 268
15.5.5 測試網站的身份驗證 270
15.6 HtmlUnit與Selenium的對比 275
15.7 小結 275
第 16章 Spring應用程序測試 277
16.1 Spring框架簡介 277
16.2 依賴注入簡介 278
16.3 構建和測試Spring應用程序 283
16.3.1 以編程方式創(chuàng)建Spring上下文 283
16.3.2 使用Spring TestContext框架 286
16.4 為JUnit Jupiter使用SpringExtension 288
16.5 添加新特性并使用JUnit 5測試 290
16.6 小結 296
第 17章 Spring Boot應用程序測試 297
17.1 Spring Boot簡介 297
17.2 用Spring Initializr創(chuàng)建項目 298
17.3 將Spring應用遷移到Spring Boot中 300
17.4 為Spring Boot實現特定測試的配置 303
17.5 在Spring Boot應用中添加和測試新特性 305
17.6 小結 309
第 18章 REST API測試 311
18.1 REST應用程序簡介 311
18.2 創(chuàng)建RESTful API來管理實體 312
18.3 創(chuàng)建RESTful API來管理兩個相關實體 319
18.4 測試RESTful API 326
18.5 小結 330
第 19章 數據庫應用程序測試 331
19.1 數據庫單元測試阻抗不匹配 331
19.1.1 單元測試必須運行獨立的代碼 332
19.1.2 單元測試必須易于編寫和運行 332
19.1.3 單元測試必須快速運行 333
19.2 測試JDBC應用程序 333
19.3 測試Spring JDBC應用程序 342
19.4 測試Hibernate應用程序 349
19.5 測試Spring Hibernate應用程序 354
19.6 測試數據庫應用程序的方法比較 360
19.7 小結 361

第五部分 用JUnit 5開發(fā)應用程序


第 20章 用JUnit 5進行測試驅動開發(fā) 365
20.1 TDD的主要概念 365
20.2 航班管理應用程序 366
20.3 將航班管理應用程序遷移到TDD 371
20.4 重構航班管理應用程序 375
20.5 使用TDD引入新特性 379
20.5.1 增加一種高級航班 379
20.5.2 同一名乘客只能添加一次 387
20.6 小結 390
第 21章 使用JUnit 5進行行為驅動開發(fā) 391
21.1 行為驅動開發(fā)簡介 391
21.1.1 一種新特性的引入 392
21.1.2 從需求分析到驗收標準 392
21.1.3 BDD的優(yōu)點和挑戰(zhàn)性 393
21.2 使用Cucumber和JUnit 5操作BDD風格 394
21.2.1 Cucumber簡介 395
21.2.2 將TDD特性遷移到Cucumber中 396
21.2.3 使用Cucumber增加一個新功能 403
21.3 使用JBehave和JUnit 5操作BDD風格 410
21.3.1 JBehave簡介 410
21.3.2 將TDD特性遷移到JBehave中 410
21.3.3 使用JBehave增加一個新功能 416
21.4 Cucumber與Jbehave的比較 423
21.5 小結 423
第 22章 用JUnit 5實現測試金字塔策略 424
22.1 軟件測試的層次 424
22.2 單元測試:隔離運行的基本組件 425
22.3 集成測試:單元組合 435
22.4 系統(tǒng)測試:考查完整的 軟件 442
22.4.1 使用模擬的外部依賴項進行測試 443
22.4.2 使用部分實現的外部依賴項進行測試 447
22.4.3 使用完全實現的外部依賴項進行測試 449
22.5 驗收測試:軟件滿足業(yè)務需求 452
22.6 小結 461
附錄A  Maven 462
A.1 約定優(yōu)于配置 462
A.2 強依賴管理 462
A.3 Maven的構建生命周期 463
A.4 基于插件的體系結構 465
A.5 Maven的項目對象模型 466
A.6 安裝Maven 467
附錄B  Gradle 468
B.1 安裝Gradle 468
B.2 創(chuàng)建Gradle任務 470
附錄C  IDE 473
C.1 安裝IntelliJ IDEA 473
C.2 安裝Eclipse 474
C.3 安裝NetBeans 475
附錄D  Jenkins 476

本目錄推薦

掃描二維碼
Copyright ? 讀書網 ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號