testing包
在我们的GO项目中,需要对方法或代码包进行测试。 在项目的目录中除了代码源文件还要创建一个以"_test.go"结尾的测试文件
Go语言的标准库提供了一个名为"testing"的包,其中包含了一些用于编写单元测试的工具和函数。需要在测试文件中导入。
import "testing"
示例
以一个HelloTom函数为例
func HelloTom() string {
return "Jerry"
}
在测试文件中,使用func TestXxx(*testing.T)的格式创建测试函数,其中"Xxx"是要测试的函数或方法的名称。测试函数的参数是一个*testing.T类型的对象,用于管理测试过程和报告测试结果。
func TestHelloTom(t *testing.T){
output := HelloTom()
expectOutput := "Tom"
if output != expectOutput {
t.Errorf("Expect %s do not match actual %s", expectOutput, output)
}
}
在测试函数中,使用断言来验证代码的预期行为和结果。*testing.T对象提供了一些内置的断言函数,例如t.Errorf、t.Fatalf和t.Logf。你还可以使用reflect包来进行更复杂的比较和验证。
这里使用t.Errorf来验证输出的是否是"Tom"
在终端中运行go test命令来执行测试。Go将自动查找当前目录及其子目录中以"_test.go"结尾的文件,并运行其中的测试函数。
$ go test
运行测试后,你可以看到一份摘要报告,其中列出了测试的总数、通过的测试数和失败的测试数。
$ go test
--- FAIL: TestHelloTom (0.00s)
HelloTom_test.go:9: Expect Tom do not match actual Jerry
FAIL
exit status 1
FAIL testexample 1.111s