上一篇笔者介绍了 Go
语言的 基准测试,其实在测试源码文件中还可以添加样本测试函数,但编写样本测试函数不需要使用 testing 代码包的 API。
下面我们来介绍一下 Go
语言的样本测试:
样本测试函数的名称需要以 Example 作为开始。在这类函数的函数体的最后还可以有若干个注释行。它们作用是比较在该测试函数被执行期间,标准输出上出现的内容是否与预期的相符。但要想这些注释航被正确地解析,需满足下面几个条件:
如下一个测试源码文件 et_test.go,位于工作区 src 下的 testing/et 代码包中:
package et
import (
"fmt"
)
func ExampleHello() {
fmt.Println("Hello, Huazie")
// Output: Hello, Huazie
}
使用 go test 命令对上面的源码文件 et_test.go 进行测试,运行截图如下:
调用 fmt.Println 函数所产生的打印内容并不会真正地出现在标准输出上,而只会被用于与样本注释行中的内容做对比。现在修改 fmt.Println 中内容为 Hello, Huazie1,运行结果截图如下:
现在将样本测试函数 ExampleHello 修改成这样:
func ExampleHello() {
for i := 0; i < 3; i++ {
fmt.Println("Hello, Huazie")
}
// Output: Hello, Huazie
// Hello, Huazie
// Hello, Huazie
}
运行截图如下:
测试仍然通过,不过需要注意,在样本测试函数的函数体末尾的多个样本注释行必须是连续的,在它们之间不能间隔任何行,即使是空行也不行。命令程序只会把在样本测试函数的函数体中的紧挨着当前函数体结束符 } 的注释行视为样本注释行。如果一个样本测试函数中没有任何样本注释行,那么这个函数仅仅会被编译而不会执行。
样本测试函数命名规则:
如果需要在样本测试函数的名称上添加后缀,那么需要用下划线把该后缀与名称的其他部分分隔开。并且,该后缀的首字母必须小写。例如:针对类型 T 的方法 M 且需要加入后缀 basic 的样本测试函数的名称应该是 ExampleT_M_basic。
本篇我们讲解了Go语言的样本测试,下一篇我们了解Go语言的测试运行记录和覆盖率的内容,敬请期待!!!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。