前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go单元测试(一):基本用法

Go单元测试(一):基本用法

作者头像
灰子学技术
发布2023-10-30 15:38:17
2320
发布2023-10-30 15:38:17
举报
文章被收录于专栏:灰子学技术
一、单元测试的基本规则介绍

Go的单元测试比较容易实现,因为Go语言为我们提供了单元测试的框架。而对于单元测试的框架需要遵循下面的几条规定。

规则1.单元测试代码的go文件必须以_test.go结尾,Go语言测试工具只会认符合这个规则的文件 规则2.单元测试的函数名必须以Test开头,是可导出公开的函数。备注:函数名最好是Test+要测试的方法函数名 规则3. 测试函数的签名必须接收一个指向testing.T类型的指针作为参数,并且该测试函数不能返回任何值

规则1:

例子:单元测试文件不是以_test.go结尾命名的情况。

$ go test // 备注,ut目录下只有main.go和maintest.go的时候,会显示下面的提示

? _/Users/XXXX/ut [no test files] // 执行结果,显示没有测试文件被发现。

规则2:

例子:测试函数不是以Test开头

go test 会提示 告警:testing: warning: no tests to run

二、如何运行一个单元测试

单元测试代码如下所示:

main.go + main_test.go

$ go test -v -cover

介绍: // -v, 显示单元测试的详细信息, // -cover会显示测试代码的覆盖率 // go test显示的UT测试结果,以及花费的时间

三、表格驱动测试方法:

如果一个函数的逻辑分支很多,将会导致测试这个函数的测试用例非常多,然而这些测试用例绝大部分函数都是类似的。对于这种情况,表格驱动法(Table Driven)便可以发挥作用了。

下面用一个例子来介绍如何使用表格驱动法:

$ go test table_test.go table.go -v

画乛

表格驱动测试一般会用到三个步骤:

1.定义测试结果验证对应的数据结构。 2.构造测试函数对应的几种测试场景。 3.循环调用被测函数,并进行校验。

备注:

以上介绍的只是单元测试的最基本测试知识,实际工程中的单元测试要比这复杂很多,很多。尤其是一个模块中的函数依赖与其他模块或者第三方库等的接口内容,这种情况下,我们在做单元测试的时候,就需要stub和mock这些需要依赖的函数。(这部分知识会在后续章节进行介绍。)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 灰子学技术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、单元测试的基本规则介绍
  • 二、如何运行一个单元测试
  • 三、表格驱动测试方法:
  • 备注:
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档