示例测试(自我记录测试)
此类测试可确保你的代码正确编译并显示在项目的生成文档中。除此之外,示例测试可以断言你的测试产生正确的输出。
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 方法的文档如下所示: