概述

测试不是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