go golang TDD Test-Driven Development

先分享一下 我自己在測試 Router 的 function 時,用來協助寫測試 function 的 Code


26 行的 TestApiCall 是用來呼叫 你實際的 function 的

parameter: 
  
  req Request 這就是 api call 的參數 就不多做說明了
  
  use []gin.HandlerFunc 這個會被放進 global middleware to the router. 可以操作 context

  handle gin.HandlerFunc 這個是你實際要測試的 function

56 行的 JudgementApicallResponse 只是一個判斷輸入是否符合期待的 function

parameter: 
  
  t *testing.T 這是 go 內建的 test 就不多做說明
  
  res Response 這個是 api call 得到的 result

  want Response 這個是期待要拿到的結果

基本上每個 test case 都會呼叫到 TestApiCallJudgementApicallResponse

大量的減少了 test case 的 code

並且可以在觀看 test case 只需要專注在輸入輸出

算是方便的小工具了


打完收工