大家好,我是 frank。 欢迎大家点击标题下方蓝色文字「Golang 语言开发栈」关注公众号。 设为星标,第一时间接收推送文章。 文末扫码,加群一起学 Golang 语言。
01
介绍
go test
02
命名规范
在 Golang 语言中编写测试代码,需要遵循一些命名规范,包含文件名、包名、函数(方法)名和变量名。
文件名和包名
_test.gogo test_test.gogo buildgo run_test.go
包名一般和被测试文件的包名相同,这样即可以测试被测试文件的可导出函数和不可导出函数。
函数名和方法名
TestXxxxXxxx
变量名
go testgot/wantexpected/actual
03
编写测试代码
单元测试
所谓单元测试,顾名思义就是对单元进行测试,一般进行测试的单元是一个最小的单元,在 Golang 语言中,最小的单元就是指一个函数或方法。
TestTestXxx*testing.TLogLogfErrorErrorfFatalFatalf
被测试函数:
测试函数:
阅读上面这段代码,是我们编写的 Sum 函数的单元测试,给定 a, b 两个变量作为 Sum 函数的输入参数,此外,我们还可以使用表格测试发,给定一组被测试函数的输入参数,限于篇幅,本文不准备花费篇幅介绍。
go test
go test_test.gogo test-v-run-count
--coverprofile
阅读上面的执行结果,可以发现我们编写的单元测试覆盖率为 100%。
htmlhtml
func_cover.html
基准测试
BenchmarkBenchmarkXxx*testing.Bb.N
示例代码:
go test-bench
BenchmarkXxx-nBenchmarkSum-1610000000000.2325 ns/op0.2325
b.Nb.ResetTimer()b.StopTimer()b.StartTimer()
go test-bench-benchmem-cpu-benchtimesx-timeout
04
总结
本文我们介绍怎么编写测试代码,包含单元测试和基准测试。特别需要注意的是一些命名规范。
养成编写测试代码的习惯,不仅可以降低代码逻辑的错误率,而且在多人开发中,还可以提升联调效率和提测通过率。