1.测试用例文件名必须以 _test.go 结尾。比如cal_test.go,cal不是固定的。
2.测试用例函数必须以Test开头,一般来说就是Test+被测试的函数名,比如TestAddUpper。
3.TestAddUpper(t testing.T)的形参类型必须是testing.T
4.一个测试用例文件中,可以有多个测试用例函数,比如TestAddUpper、TestSub
5.运行测试用例指令
1)cmd > go test
[如果运行正确,无日志,错误时,会输出日志]
2)cmd > go test -v
[运行正确或是错误,都输出日志]
3)cmd > go test cal_test.go
[测试单个文件]
4)cmd > go test -v -test.run TestAddupper
[测试单个方法]
6.当出现错误时,可以使用t.Fatalf来格式化输出错误信息,并退出程序
7.t.Logf方法可以输出相应的日志
8.测试用例函数,并没有放在main函数中,也执行了,这就是测试用例的方便之处
9.PASS表示测试用例运行成功,FAIL表示测试用例运行失败
package even
import "testing"
func TestEven(t *testing.T) {
if Even(10) {
t.Log("10 must even")
t.Fail()
}
}
用(测试数据)表驱动测试
package even
import "testing"
var tests = []struct {
in int
out bool
}{
{1, false},
{2, true},
{3, false},
}
func verify(t *testing.T, testNum int, testCase string, in int, out bool, expected bool) {
if expected != out {
t.Errorf("%d. %s with input = %d: output %t != %t", testNum, testCase, in, out, expected)
}
}
func TestEven2(t *testing.T) {
for i, v := range tests {
b := Even(v.in)
verify(t, i, "FuncEven", v.in, b, v.out)
}
}