go语言单元测试
Go本身提供了一套轻量级的测试框架.符合规则的测试代码会在运行测试时被自动识别并执行.单元测试源文件的命名规则如平衡点:在需要测试的包下面创建以”_test”结尾的go文件,开如[^.]*_test.go
Go单元测试函数分为两在类.功能测试函数和性能测试函数,分别以Test和Benchmark为函数名前缀并以*testing.T 和 *testing.B 为单一参数的函数。
func TestAdd1(t *testing.T)
func BenchmarkAdd1(t *testing.T)
测试工具会根据函数中的实际执行动作得到不同的测试结果。
功能测试函数会根据测试代码执行过程中是否发生错误来反馈结果; 性能测试函数仅仅打印出来测试所花费时间,用来判断程序性能;
准备
新建一个文件,命名为 go_test.go
package go_test
import "testing"
func Add(a, b int) int {
return a + b
}
功能测试
在go_test.go文件里添加以下代码
func TestAdd1(t *testing.T) {
r := Add(1, 2)
if r != 2 { //这里为了测试,写成2
t.Errorf("Add(1,2) failed. Got %d, expected 3.", r)
}
}
执行功能单元测试非常的简单,直接执行
go test
输出以下内容
--- FAIL: TestAdd1 (0.00s)
go_test.go:12: Add(1,2) failed. Got 3, expected 3.
FAIL
exit status 1
FAIL gotest 0.130s
可以看到输出具体出错的位置为第12行,控制台并打印出了用户定义的错误信息。最后的FAIL表示测试未通过,如果为 ok 的话,则为通过。我们修正问题后再次执行结果为
By admin
read more