Skip to main content

撰寫http request 的測試

大致的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/[email protected]

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

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

來將系統的cli更新