概述
测试不是Go语言独有的,其实在很多语言都有测试,例如:Go、Java、Python…
要想成为一名合格的大牛,这是程序员必须具备的一项技能,特别是一些大公司,这是加分的一项,主要有如下优点:
代码可以随时测试,保证代码不会产生错误
写出更加高效的代码
单元测试
func TestXXX(t *testing.T)
运行结果如下:
代码说明如下
go testadd_test.go
okcommand-line-arguments0.069s
-v
TestAddTestMul
TestAddTestMul
-runTestAdd
问题
ok command-line-arguments (cached)
go clean -testcache
go test add_test.go add.go -count=1
注意
_test.gogo test
测试文件写在同一个包,方便测试和后期的维护
testing
Test
testing.T
方 法 | 描述 |
---|---|
Log | 打印日志,同时结束测试 |
Logf | 格式化打印日志,同时结束测试 |
Error | 打印错误日志,同时结束测试 |
Errorf | 格式化打印错误日志,同时结束测试 |
Fatal | 打印致命日志,同时结束测试 |
Fatalf | 格式化打印致命日志,同时结束测试 |
LogErrorFatal
LogfErrorfFatalf
性能测试
基本使用
格式:func BenchmarkXxx(*testing.B)
测试结果如下:
代码如下说明:
-bench="."benchmark_test.go-run-bench regexp-bench.-bench=.'.
gooswindows
goarchamd64
BenchmarkHello-42000000093.7 ns/op
自定义测试时间
-benchtime
-benchtime t
testing.Btesting.Btesting.T
方法 | 描述 |
---|---|
StartTimer() | 启动计时 |
StopTimer() | 停止计时 |
ResetTimer | 重置计时 |
SetBytes() | 设置处理字节数 |
ReportAllocs() | 报告内存信息 |
runN(n int) | 运行一个基准函数 |
go test-parallel n-cover-vet list-parallel n
原文链接:https://blog.csdn.net/guofeng93/article/details/94884197