单元测试学习笔记:
- 文件名的结尾要是以_test.go结尾,例如utils_test.go,这样go test才能成功实现。
- 要在开头import testing。
import "testing"
-
测试用例函数一定要用Test作为开头。例如
func TestGetSum(t *testing.T) -
测试函数Test...()的参数是testing.T,我们可以使用该类型来记录错误或是测试状态,示例同上。
-
测试格式:func TestAaaaaaaa(t *testing.T),Aaaaaaaa部分可以为任意字母和数字的组合,但是Aaaaaaaa的首字母不能是小写字母。例如
func Testdiv(t *testing.T)是错误的函数名。 -
函数中通过调用testing.T的一些方法来说明测试不通过,可以调用Log方法用来记录测试的信息。 👇👇👇
t.Errorf("期望%d,实际%d",55,sum)
t.FailNow()
要测试的函数 文件名单元测试.go
package 测试
func GetSum(n int) int {
var sum = 0
for i := 1;i<n+1;i++{
sum += i
}
return sum
}
测试: 文件名:单元测试_test.go
package 测试
import "testing"
func TestGetSum(t *testing.T) {
sum := GetSum(10)
if sum!=55{
t.Errorf("期望%d,实际%d",55,sum)
t.FailNow()
}
t.Log("TestGetSum测试成功!")
}
然后选择测试文件夹,右键,到run,选择 go test。
下面是测试结果:
其中,=== RUN TestGetSum是测试的函数。
单元测试_test.go:11: TestGetSum测试成功!是Log函数输出的结果:“TestGetSum测试成功”。 --- PASS: TestGetSum (0.00s) 是测试该函数用的时间,这里是0.00秒。
现在我们添加一个测试用例:
package 测试
import (
"testing"
)
func TestGetSum(t *testing.T) {
sum := GetSum(10)
if sum!=55{
t.Errorf("期望%d,实际%d",55,sum)
t.FailNow()
}
t.Log("TestGetSum测试成功!")
}
func TestGetSum2(t *testing.T) {
sum := GetSum(5)
if sum!=15{
t.Fatal("这是一个致命错误!")
}
t.Log("测试成功!")
}
下面是测试结果: