上一篇介紹瞭如何編寫Rest Controller單元測試的初始配置,本篇接續研究怎麼進行發送request及驗證response。
在那之前請先
待測系統 & 單元測試的配置
系統內建立了一個IssueController,它負責處理兩個request:
1.查出所有的Issue:GET /api/issue -> List< Issue > queryAll
2.查出指定的Issue:GET /api/issue/{id} -> Issue queryById
Controller單元測試的配置,請參考以下程式碼及說明:
接下來,讓我們試著為這兩個處理情境編寫單元測試吧。
查出所有的Issue
驗證方法QueryAll通過以下期望:
驗證回傳http status code 200。
驗證回傳指定數量的issue。
驗證回傳正確的資訊。
請參考以下代碼及說明:
查出指定的Issue
驗證方法QueryById通過以下期望:
驗證回傳http status code 200。
驗證回傳正確的資訊。
這邊僅列出第二層類別,請參考以下代碼:
編寫的過程中注意,因為這部分import的靜態方法會有些同名方法的問題,所以必須確認是否來自正確的類別,如get,content,jsonPath,is等方法。
其實spring controller的測試做法不難,但我們必須先要有一些前置知識,譬如使用測試替身來獨立待測系統、如何配置及使用MockMvc、易於維護的巢狀寫法、定義需求及測試案例等等,才容易寫出好的測試程序。
以上,本篇說明了如何使用mockMvc物件發送request及驗證response;下一篇,繼續說明其他驗證的情境。
閱讀更多 Java高級開發工程師 的文章