Go 测试用例的写法

16 min read

Go 语言的测试用例编写主要基于内置的 testing 包,下面是一个简单的示例:

package main

import (
    "testing"
)

// 测试用例
func TestAdd(t *testing.T) {
    
    result := Add(2, 4)
    if result != 6 {
        t.Errorf("expect 6, but got: %d", result)
    }
}

// 被测试的函数
func Add(a, b int) int {
    return a + b
}

在这个示例中,我们定义了一个测试用例 TestAdd(),并在里面调用了待测试的函数 Add(),接着我们通过 Go 内置的测试辅助函数 t.Errorf() 来判断测试结果是否符合预期,如果测试不通过就会输出一个错误信息。

然后我们将整个项目的目录都放在 $GOPATH/src/ 目录下,并通过命令行工具 go test 来运行测试,比如:

$ go test -v
=== RUN   TestAdd
--- PASS: TestAdd (0.00s)
PASS
ok      project/dir     0.001s

其中 -v 表示输出详细信息,我们可以看到测试通过了。如果测试不通过,会输出相应的错误信息。