go单元测试方法
Go语言自带一个轻量级测试框架testing,自带go test命令来实现单元测试和性能测试。
通过单元测试,简化了传统的测试步骤,可以比较方便地测试函数的运行流程和性能。主要是不用把所有调用函数的测试代码都写在main函数里面了,可以直接编写测试函数进行批量化测试。
testing 提供以包为单位的自动化测试的支持。通过 go test 命令,能够自动执行以’xxx_test.go’文件中,如下形式的任何函数:
import "testing"
// 其中 Xxx 可以是任何字母数字字符串(但第一个字母不能是 [a-z]),用于识别测试程序。
func TestXxx(*testing.T)
例子:测试div函数是否运行正常
package test
import "testing"
func div(a, b int) float64 {
return float64(a) / float64(b)
}
func Test0div(t *testing.T) {
if div(2, 3) != 2.0/3.0 {
t.Fatalf("e")
}
t.Logf("s")
}
func Test1div(t *testing.T) {
if div(2, 3) != 2.0/4.0 {
t.Fatalf("e")
}
t.Logf("s")
}
func Test2div(t *testing.T) {
if div(2, 3) != 2.0/3.0 {
t.Fatalf("e")
}
t.Logf("s")
}
文件夹下运行go test -v命令,进行测试。
go单元测试注意点
- 测试用例文件名必须以
_test.go结尾。比如div_test.go,div不是固定的。 - 测试用例函数必须以 Test 开头,一般来说就是 Test+被测试的函数名,比如
Test0Div - 测试函数的形参类型必须是
*testing.T,即(t *tesing.T) - 运行测试用例指令
a.go test如果运行正确,无日志,错误时,会输出日志
b.go test -v运行正确或是错误,都输出日志 - 编写测试程序时,可以使用
t.Fatalf来格式化输出错误信息,执行完自动退出程序。可以使用t.Logf方法可以输出普通日志 - 使用单元测试时,go集成了testing框架,所以不需要main函数
- 测试单个方法的命令为
go test -v -test.run TestXxx
884

被折叠的 条评论
为什么被折叠?



