文章目录
Go原因中自带一个轻量级的测试框架 testing 并自带go test 命令,来实现单元测试和性能测试。可以基于testing框架进行 函数的测试,也可以进行压力测试.
编写方式
- 编写测试用例文件 如:main_test.go
- import testing 包,并编写测试用例方法 如:func TestSum(t *testing.T)
- 执行 命令 go test -v 运行测试用例
示例代码
//测试用例文件
package main
import(
"fmt"
"testing"
)
func TestAddUpper( t *testing.T){
res:=AddUpper(10)
fmt.Println("结果=>",res)
if res == 55{
fmt.Println("准确")
}else{
fmt.Println("不准确")
}
}
func TestSum( t *testing.T){
res:=Sum(10,11)
fmt.Println("结果=>",res)
if res == 20{
fmt.Println("准确")
t.Logf("Sum() 方法测试通过")
}else{
fmt.Println("不准确")
t.Fatalf("Sum() 方法期望返回 %v 实际返回 %v",20,res)
}
}
package main
import(
//"fmt"
//"testing"
)
func main(){
}
func AddUpper(n int) int{
res:=0
for i:=1;i<=n;i++{
res+=i
}
return res
}
func Sum(a int,b int) int{
return a+b
}
注意点
- 测试用例文件名必须以 _test.go结尾,比如 main_test.go
- 测试用例函数必须以Test开头,一般来说Test+被测试函数名 如:TestSum
- TestSum(t *testing.T) 测试用例函数的形参必须是 *testing.T 类型
- 一个测试用例文件中可以包含多个测试用例函数,
- go test 命令运行测试用例,如果运行正确 不显示日志,如果运行错误会出现日志
go test -v 无论运行正确还是错误都输出日志 - 当出现错误时 可以用tFatalf 来格式化输出错误信息,并退出程序
- t.Logf方法可以输出日志
- 默认执行所有文件中的所有方法,如果要测试单个文件 需要传参
go test -v main_test.go main.go
测试单个方法 go test -v -run TestSum