老獅:繞了一大圈,還記得我們的需求要幹嘛嗎?
小獅:我們要做登入系統,之前有列出測試項目
0. 創建使用者在資料庫,確認該使用者存在於資料庫
1. 使用者 A 用他的帳號密碼登入以後可以拿到 JWT token 並且解析出該使用者的 username
2. 使用者 A 用錯密碼無法換取可以登入的 JWT token
3. 使用者 A 可以使用 refresh token 換到一樣可以換回一個新的 token 並可以拿回該使用者的 username
小獅:我們已經完成最一開始的測試項目了
老獅:很好,我們現在要在資料庫中產生一個使用者,並且用他的帳號密碼登入換取 token
,然後希望用該 token 可以用 token info API
去獲得該使用者的使用者名稱
小獅:我們不是有寫一個名為 test
的登入測試,我們是去改他嗎?
老獅:可以的,但是為了讓該測試更加貼近真實,也就是說,我們不能寫死 test
當作 token
內容中的使用者名稱,你會如何設計該測試?
小獅:不管我們用哪個寫死的字串,在 API
端想要騙他的話,應該都可以辦到,那不然我們用亂數產生如何?
老獅:想法不錯,那我們就來規劃一下測試的流程
目的:創建使用者 A 用他的帳號密碼登入以後可以拿到 JWT token 並且解析出該使用者的 username
1. 建立亂數的帳號
2. 建立亂數的密碼
3. 使用 1. 2. 的資訊創建使用者,於資料庫中
4. 使用 1. 2. 去 POST "/v1/auth/users/tokens"
5. 使用 4. 回傳的 `token` 去 GET "/v1/auth/users/tokens/info",並且驗證該回傳的 username 與 1. 相同