撰写http request 的测试(golang)(Day24)

文章同步更新於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/[email protected]

来让专案的go.mod里面的ginkgo升级成v2
再来用

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

来将系统的cli更新


<<:  第38天~画完图来看语法

>>:  [番外篇]Go Generate & Makefile(Day25)

Rails基本介绍(二)

听音乐先~ Rails操作实体 接续前一篇文章,做出一个实体後。 专案中 project_name/...

Day19 - 【概念篇】OAuth flows: Device Code(1)

本系列文之後也会置於个人网站 +----------+ +----------------+ | ...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (1) 前言

在 5 年前,不只在开会时会这样要求,也常常说一个概念:SEO 是一种 Multi-Stack 的工...

Day18 - 如何盘中计算技术指标且发送讯号到line: line notify权杖申请

上次我们学会了如何用talib进行指标运算,今天将介绍如何在盘中即时计算技术指标,且当技术指标达到我...

Day08-Kubernetes 那些事 -Service 篇

前言 在前面的文章讲完了 Pod 後接下来就要讲讲如何正确的连接到 Pod ,其实连接到 Pod 有...