描述
Go语言官方则提供了语言级的单元测试支持,即testing包,而且仅通过go工具本身就可以方便地生成覆盖率数据,也就是说,单元测试是Go语言的自带属性,除了好好设计自己的单元测试用例外,开发者不需要操心工程搭建的任何细节。
逻辑代码
创建一个sum.go文件, 编写一下函数代码
// 求和
func Sum(a, b int) int{
return a + b
}
单元测试
进行代码的单元测试, 在sum.go文件同级目录下新建一个sum_test.go的测试文件
package sum
import (
"testing"
"fmt"
)
var sumTest = []struct{
a int
b int
prt int
}{
{10, 12, 22},
{1, 11, 12},
{14, 15, 29},
}
func TestSum(t *testing.T) {
for _, val := range sumTest {
if Sum(val.a, val.b)!= val.prt{
t.Error(errors.New("实际值与期望值不符!"))
}
}
}
- 导入testing包:testing包拥有执行Golang单元测试所需要的一切;
- 编写测试函数:所有测试函数都以Test开头,入参是testing.T类型的指针,在函数内调用被测函数,并对不符合预期的结果调用类似Error、Fatal的函数,其中前者在被调用后会打印出错信息,并继续执行后续用例,而后者则在打印信息后立即终止测试&