Go语言的单元测试方法是什么
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容主要讲解"Go语言的单元测试方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Go语言的单元测试方法是什么"吧!Go语言似乎是个偏执狂,牺牲
千家信息网最后更新 2025年12月02日Go语言的单元测试方法是什么
本篇内容主要讲解"Go语言的单元测试方法是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Go语言的单元测试方法是什么"吧!
Go语言似乎是个偏执狂,牺牲了不必要的灵活性,带来一些强制的编程风格和约定。比如:
无任何形式的Makefile,模块就是目录、包就是目录、编译配制就是目录!
不光目录被用上了,文件名还能指定用途。文件名后缀为_test.go的都是单元测试文件,_linux32.go就是32位linux特定的代码。
不光文件名被用上了,函数名还有特定用途。在单元测试文件中,测试函数以Test开头。以大写字母开头的变量、类型和函数是外部可见的,小写字母开头的变量、类型和函数是外部不可见的。
类似的约定也不好说是go语言首创,在一些文件格式中也有类似规范。但是我暂时不知道到有什么其它编程语言对编程风格这么带强制性。
对于单元测试,假设有如下calc.go文件:
package calcfunc Add(a,b int) int { return a+b }func Max(a,b int) (ret int) { ret = a if b > a { ret = b } return}func Min(a,b int) (ret int) { ret = a if b < a { ret = b } return}有如下测试代码calc_test.go:
package calcimport ( "testing")type calcTest struct { a,b,ret int}var addTests = []calcTest{ calcTest{4,6,10}, calcTest{5,6,11}, calcTest{8,-10,-2},}func TestAdd(t *testing.T) { for _,v := range addTests { ret := Add(v.a,v.b) if ret != v.ret { t.Errorf("%d add %d,want %d,but get %d",v.a,v.b,v.ret,ret) } }}func TestMax(t *testing.T){ a,b := 100,300 ret := Max(a,b) if ret != b { t.Errorf("%d is bigger than %d",b,a) }}func TestMin(t *testing.T) { a,b := 100,300 ret := Min(a,b) if ret != a { t.Errorf("%d is smaller than %d",a,b) }}执行go test 得到如下结果:
PASSok _/home/liangdi/Desktop/test/go/testing 0.008在calc.go中设计一个逻辑错误,把 func Min(a,b int) ret int 改为:func Min(a,b int) (ret int) { ret = a //逻辑错误 if b > a { ret = b } return}执行go test的结果为:
--- FAIL: TestMin (0.00 seconds) calc_test.go:38: 100 is smaller than 300FAILexit status 1FAIL _/home/liangdi/Desktop/test/go/testing 0.005s
到此,相信大家对"Go语言的单元测试方法是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
测试
文件
单元
语言
方法
函数
就是
目录
开头
文件名
编程
代码
内容
变量
字母
用途
类型
结果
逻辑
错误
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海市计算机三级数据库技术
华为服务器管理口v2
数据库复杂表如何创建
网络安全手抄报图片竖版大全
怎样远程控制服务器
河南数据库防护箱销售
云服务器怎么测试mtr
计算机网络技术学的科目
全国互联网应用软件开发大赛
银川市服务器运维
软件开发方面什么最赚钱
应用数学与通信网络技术
千兆多画面轮循监测服务器
应用软件开发项目管理
编制一个带数据库的小程序
arm架构用的是服务器内存
中小学如何开展网络安全教育
方舟生存进化服务器作弊管理
芜湖一诺网络技术有限公司
幻1云神奇宝贝服务器
张莉家庭教育与网络安全视频
奇安信融媒体的网络安全
临床安全数据库
如何做到网络安全文明上网
网络技术数据库等级
计算机网络技术与实训
恩家网络技术有限公司
北京高科技软件开发诚信合作
原神下错服务器怎么解决
数据库推荐几本