iT邦幫忙

2021 iThome 鐵人賽

1

文章同步更新於https://kevinyay945.com/smart-home-tutorial/024

大致的api都開設完成了,在這次的專案中,目前預計會實作的測試為實際的request是否可以完整執行,因為這麼實作,就可以把測試案例寫在程式中頻繁地進行測試,來做到向下兼容的部分

而這次進行測試,一樣要使用到ginkgo來產生測試的範本

而這次要寫的測試案例,主要是http的request的input跟output
所以這個部分,我們參考echo 官網的測試案例撰寫

https://echo.labstack.com/guide/testing/

而這次還有使用到gomock
這個mock主要是要讓我們來將程式中有用到其他依賴的interface來做替換,讓我們可以在測試案例中自由選擇這些method預期的輸出

在這次的測試案例中,我們就是將IRequest中的換成我們用gomock產生的struct,然後來讓程式中Get()變得可以自由控制他的預期輸入跟輸出
這個的詳細使用可以參考
https://github.com/golang/mock

另外,在golang中,如果想要mock其他內容,還有其他種方式,也在這邊附上我找到的還不錯的參考
https://www.myhatchpad.com/insight/mocking-techniques-for-go/

以下是這次的code跟編輯的影片過程
https://github.com/kevinyay945/smart-home-backend/tree/v0.5.1
https://www.youtube.com/watch?v=kQm3ozOMkro

參考

https://yuanchieh.page/posts/2021/2021-03-18-golang-test/

備註

又因為在撰寫程式的當下,他有釋出第二版,所以目前想使用v2的ginkgo
https://github.com/onsi/ginkgo/blob/ver2/docs/MIGRATING_TO_V2.md#using-the-beta
所以要先在專案下執行

go get github.com/onsi/ginkgo/v2@v2.0.0-rc3

來讓專案的go.mod裡面的ginkgo升級成v2
再來用

go install github.com/onsi/ginkgo/v2/ginkgo

來將系統的cli更新


上一篇
資料驗證(golang)(Day23)
下一篇
[番外篇]Go Generate & Makefile(Day25)
系列文
網頁新手入門,手把手用React/Golang(Echo)開發基礎網頁(以簡易智慧家庭為例)28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言