示例测试(自我记录测试)

此类测试可确保你的代码正确编译并显示在项目的生成文档中。除此之外,示例测试可以断言你的测试产生正确的输出。

sum.go

package sum

// Sum calculates the sum of two integers
func Sum(a, b int) int {
    return a + b
}

sum_test.go

package sum

import "fmt"

func ExampleSum() {
    x := Sum(1, 2)
    fmt.Println(x)
    fmt.Println(Sum(-1, -1))
    fmt.Println(Sum(0, 0))

    // Output:
    // 3
    // -2
    // 0
}

要执行测试,请在包含这些文件的文件夹中运行 go test,或将这两个文件放在名为 sum 的子文件夹中,然后从父文件夹执行 go test ./sum。在这两种情况下,你将得到类似于此的输出:

ok      so/sum    0.005s

如果你想知道这是如何测试你的代码,这是另一个示例函数,它实际上未通过测试:

func ExampleSum_fail() {
    x := Sum(1, 2)
    fmt.Println(x)

    // Output:
    // 5
}

当你运行 go test 时,你会得到以下输出:

$ go test
--- FAIL: ExampleSum_fail (0.00s)
got:
3
want:
5
FAIL
exit status 1
FAIL    so/sum    0.006s

如果你想查看 sum 软件包的文档 - 只需运行:

go doc -http=:6060

并导航到 http:// localhost:6060 / pkg / FOLDER / sum / ,其中 FOLDER 是包含 sum 包的文件夹(在本例中为 so)。sum 方法的文档如下所示:

StackOverflow 文档