要测试的方法
unit.go
package main
func addUpper(n int) int {
res := 0
for i := 1; i <= n-1; i++ {
res += i
}
return res
}
func main() {
}
单元测试文件 必须_test结尾
unit_test.go
//go单元测试
package main
import "testing"
// 编写测试用例 testing 框架会执行_test结尾的文件 并找到Test开头的函数执行
// 执行命令:go test -v 执行全部目录测试
// go test unit_test.go .\unit.go 执行指定文件测试
// go test -v -run TestAddUpper unit_test.go unit.go 执行指定方法
func TestAddUpper(t *testing.T) {
// 调用要测试的函数
res := addUpper(10)
if res != 55 {
t.Fatalf("addUpper(10) 执行错误,期望值=%v 实际值=%v \n", 55, res)
}
// 如果正确 输出日志
t.Logf("addUpper(10) 执行正确。。。")
}
基准测试——获得代码内存占用和运行效率的性能数据
package main
import "testing"
// 基准测试——获得代码内存占用和运行效率的性能数据
// 函数名 Benchmark开头
//go test -v -bench=Add benchmark_test.go
// ns/op”表示每一个操作耗费多少时间(纳秒
// go test -v -bench=Add -benchmem benchmark_test.go
//-bench后添加了 Add,指定只测试 Benchmark_Add() 函数
//-benchmem参数以显示内存分配情况
// 执行正则匹配查询go test -v -bench ^Benchmark_Add$ benchmark_test.go
func Benchmark_Add(b *testing.B) {
var n int
for i := 0; i < b.N; i++ {
n++
}
}
func Benchmark_Add2(b *testing.B) {
var n int
for i := 0; i < b.N; i++ {
n++
}
}