[TOC]
# 单测
| 类型 | 格式 | 作用 |
| --- | --- | --- |
| 测试函数 | 函数名前缀为Test | 测试程序的一些逻辑行为是否正确 |
| 基准函数 | 函数名前缀为Benchmark | 测试函数的性能 |
命令:
go test
在包目录内,所有以`_test.go`为后缀名的源代码文件都是`go test`测试的一部分,不会被`go build`编译到最终的可执行文件中。
`go test`命令会遍历所有的`*_test.go`文件中符合上述命名规则的函数
## 测试函数的格式
~~~go
func TestName(t *testing.T){
// ...
}
eg:
func TestCalc(t *testing.T) {
c := Calc(2, 3)
n := 5
fmt.Println(c == n)
}
~~~
>go test -v 可查看测试的函数名称和测试时间
> go test -v -run="xxx" eg:go test -v -run="Su" 函数名称:TestSub
它对应一个正则表达式,只有函数名匹配上的测试函数才会被`go test`命令执行。
> go test -conver 测试代码覆盖率
# 基准测试
~~~go
func BenchmarkName(b *testing.B){
// ...
}
func BenchmarkSub(b *testing.B) {
c := Sub(5, 3)
n := 2
fmt.Println(c == n)
}
~~~
命令:
>go test -bench=Name eg:go test -bench=Sub
~~~bash
go test -bench=.
~~~
如果Name是“.”,代表运行文件所有的基准方法
> go test -bench=Name -benchmem
可获得内存分配的统计数据
- Go准备工作
- 依赖管理
- Go基础
- 1、变量和常量
- 2、基本数据类型
- 3、运算符
- 4、流程控制
- 5、数组
- 数组声明和初始化
- 遍历
- 数组是值类型
- 6、切片
- 定义
- slice其他内容
- 7、map
- 8、函数
- 函数基础
- 函数进阶
- 9、指针
- 10、结构体
- 类型别名和自定义类型
- 结构体
- 11、接口
- 12、反射
- 13、并发
- 14、网络编程
- 15、单元测试
- Go常用库/包
- Context
- time
- strings/strconv
- file
- http
- Go常用第三方包
- Go优化
- Go问题排查
- Go框架
- 基础知识点的思考
- 面试题
- 八股文
- 操作系统
- 整理一份资料
- interface
- array
- slice
- map
- MUTEX
- RWMUTEX
- Channel
- waitGroup
- context
- reflect
- gc
- GMP和CSP
- Select
- Docker
- 基本命令
- dockerfile
- docker-compose
- rpc和grpc
- consul和etcd
- ETCD
- consul
- gin
- 一些小点
- 树
- K8s
- ES
- pprof
- mycat
- nginx
- 整理后的面试题
- 基础
- Map
- Chan
- GC
- GMP
- 并发
- 内存
- 算法
- docker