
0人評分過此書
Spring REST API開發與測試指南:使用Swagger、HATEOAS、JUnit、Mockito、PowerMock、Spring Test
內容簡介:DevOps與後端系統建置必修技能!
鑒於前後端分離與微服務架構的興起,伺服器端需要提供API供用戶端存取。傳統的SOAP協定是以複雜的XML作為傳送媒介,已經逐漸被使用輕量化JSON傳送資訊的REST API取代,成為開發與建置API的主流。
除此之外,API的開發和上線應用,效率與品質應該兼顧。透過DevOps流程結合開發、測試、營運,可以更快地將新增或修正的功能發佈給使用者;在這樣的環節中,自動化測試至關重要。
本書第一部分介紹Java的單元測試框架如JUnit5、Mockito、PowerMock,並探討如何提升程式的可測試性。
第二部分先介紹REST API的概念與背景。在使用Spring Boot建置初版REST API後,逐章示範API的例外處理、Swagger文件說明、版本控制、分頁與排序、與套用HATEOAS等。
最後結合Spring Test模組對REST API進行單元測試、整合測試、與端對端測試,以期產出符合企業品質與效率的REST API。
鑒於前後端分離與微服務架構的興起,伺服器端需要提供API供用戶端存取。傳統的SOAP協定是以複雜的XML作為傳送媒介,已經逐漸被使用輕量化JSON傳送資訊的REST API取代,成為開發與建置API的主流。
除此之外,API的開發和上線應用,效率與品質應該兼顧。透過DevOps流程結合開發、測試、營運,可以更快地將新增或修正的功能發佈給使用者;在這樣的環節中,自動化測試至關重要。
本書第一部分介紹Java的單元測試框架如JUnit5、Mockito、PowerMock,並探討如何提升程式的可測試性。
第二部分先介紹REST API的概念與背景。在使用Spring Boot建置初版REST API後,逐章示範API的例外處理、Swagger文件說明、版本控制、分頁與排序、與套用HATEOAS等。
最後結合Spring Test模組對REST API進行單元測試、整合測試、與端對端測試,以期產出符合企業品質與效率的REST API。
-
Part 1:建立單元測試
-
01 使用JUnit執行單元測試
-
1.1 正式程式碼與測試程式碼的差異
-
1.2 單元測試常見名詞說明
-
1.3 使用JUnit 5
-
-
02 建立測試替身
-
2.1 執行單元測試
-
2.2 認識測試替身(Test Doubles)
-
2.3 使用Dummy Object
-
2.4 使用Test Stub
-
2.5 使用Test Spy
-
2.6 使用Mock Object
-
2.7 使用Fake Object
-
-
03 使用Mockito(一)
-
3.1 認識Mockito
-
3.2 章節情境說明
-
3.3 使用Mockito驅動單元測試
-
3.4 以when()與thenReturn()定義Mock Object的方法
-
3.5 以when()與thenThrow()定義Mock Object的方法
-
3.6 使用參數配對器(ArgumentMatcher)
-
3.7 以verify()驗證Mock Object的方法呼叫
-
3.8 以when()與thenAnswer()定義Mock Object的方法
-
-
04 使用Mockito(二)
-
4.1 章節情境說明
-
4.2 快樂路徑與悲傷路徑的測試案例
-
4.3 測試void方法
-
4.4 使用doReturn()測試有Return的方法
-
4.5 使用參數捕捉器(ArgumentCaptor)
-
4.6 使用InOrder驗證Mock Object呼叫順序
-
4.7 使用Spy Object
-
4.8 使用Mockito的標註(annotation)類別
-
-
05 使用PowerMock
-
5.1 使用PowerMock測試legacy程式碼
-
5.2 偽冒static方法
-
5.3 抑制類別static成員執行初始化
-
5.4 抑制父類別建構子的執行
-
5.5 抑制類別建構子的執行
-
5.6 抑制方法的執行
-
5.7 偽冒private方法
-
5.8 偽冒final方法
-
5.9 建立final類別的Mock Object
-
5.10 使用Mockito偽冒static方法、final方法與final類別
-
-
06 依據Mockito的可測試性設計正式程式碼
-
6.1 了解測試障礙的可能原因
-
6.2 識別建構子的問題
-
6.3 識別初始化的問題
-
6.4 識別private方法對單元測試的影響
-
6.5 識別static方法對單元測試的影響
-
6.6 識別final方法對單元測試的影響
-
6.7 識別final類別對單元測試的影響
-
6.8 識別使用new呼叫建構子造成的測試問題
-
6.9 識別使用static變數和程式碼區塊造成的測試問題
-
-
-
Part 2:建立REST API
-
07 簡介REST
-
7.1 什麼是REST?
-
7.2 認識資源(Resources)
-
7.3 資源呈現(Representation)
-
7.4 HTTP方法
-
7.5 HTTP狀態碼
-
7.6 理查森的成熟度模型
-
7.7 構建REST API
-
-
08 建構REST API專案
-
8.1 介紹EasyPoll(簡易問卷) 範例專案
-
8.2 設計EasyPoll專案
-
8.3 EasyPoll專案架構說明
-
8.4 建置EasyPoll範例專案
-
8.5 建置REST API
-
-
09 REST API的例外處理
-
9.1 資源不存在的例外處理
-
9.2 請求參數異常的例外處理
-
9.3 請求JSON格式異常的例外處理
-
-
10 建立REST API使用文件
-
10.1 簡介Swagger
-
10.2 使用swagger-springmvc套件整合Swagger
-
10.3 簡介Swagger UI
-
10.4 客製Swagger UI的資源列表文件
-
10.5 客製Swagger UI的API宣告文件
-
10.6 客製Swagger UI其他頁面呈現
-
10.7 使用springfox-swagger2與springfox-swagger-ui套件整合Swagger
-
-
11 REST API的版本控制、分頁與排序
-
11.1 對API執行版本控制 (Versioning)
-
11.2 對API的回應內容分頁(Pagination)
-
11.3 對API的回應內容排序 (Sorting)
-
-
12 套用HATEOAS
-
12.1 簡介HATEOAS與HAL
-
12.2 使用spring-hateoas套件
-
-
-
Part 3:建立REST API的單元測試、整合測試、端對端測試
-
13 存取與測試REST API
-
13.1 軟體的測試層級策略
-
13.2 使用RestTemplate進行REST API的端對端測試
-
13.3 使用Spring Test進行REST API的單元測試
-
13.4 使用Spring Test進行REST API的整合測試
-
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分