[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