在Go语言中,进行单元测试非常简单。你需要遵循以下步骤:
- 导入"testing"包:在你的Go源代码文件中,导入"testing"包。这个包包含了进行单元测试所需的函数和类型。
package mypackage import ( "testing" )
- 创建一个测试函数:在同一个包中,为你要测试的函数创建一个新的函数,其名称以"Test"为前缀,后面跟上要测试的函数名。测试函数的参数是一个指向*testing.T类型的指针。
func TestMyFunction(t *testing.T) { // 测试代码 }
- 在测试函数中使用t *testing.T参数:使用t.Errorf()、t.Fatalf()等函数来报告错误。这些函数会立即停止当前测试,并在测试失败时输出详细的错误信息。
func TestMyFunction(t *testing.T) { result := MyFunction() if result != expected { t.Errorf("MyFunction() returned %v, expected %v", result, expected) } }
- 运行测试:在命令行中,使用
go test
命令来运行测试。Go会自动发现并执行以"Test"为前缀的函数。你还可以使用-v
选项来输出详细的测试结果。
$ go test -v
- 查看测试结果:命令行会显示测试结果,包括通过的测试数、失败的测试数和错误信息。
下面是一个完整的示例:
package mypackage import ( "testing" ) func MyFunction() int { return 42 } func TestMyFunction(t *testing.T) { result := MyFunction() expected := 42 if result != expected { t.Errorf("MyFunction() returned %v, expected %v", result, expected) } }
运行测试:
$ go test -v === RUN TestMyFunction --- PASS: TestMyFunction (0.00s) PASS ok mypackage 0.001s