• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

一、单元测试的基本规则介绍

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这些需要依赖的函数。(这部分知识会在后续章节进行介绍。)

 


欢迎关注,一个记录C++程序员学习Go语言的公众号,灰子学技术:


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
94_Go基础_1_62断点续传发布时间:2022-07-10
下一篇:
go-zero:开箱即用的微服务框架发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap