testing - 运行并验证示例
一个示例的例子如下:
如果 Output: Hello
改为:Output: hello
,运行测试会失败,提示:
有时候,输出顺序可能不确定,比如循环输出 map 的值,那么可以使用 “Unordered output:” 开头的注释。
如果示例函数没有上述输出注释,该示例函数只会被编译而不会被运行。
- 包级别的示例函数,直接命名为
func Example() { ... }
- 函数 F 的示例,命名为
func ExampleF() { ... }
- 类型 T 上的 方法 M 的示例,命名为
func ExampleT_M() { ... }
有时,我们想要给 包 / 类型 / 函数 / 方法 提供多个示例,可以通过在示例函数名称后附加一个不同的后缀来实现,但这种后缀必须以小写字母开头,如:
通常,示例代码会放在单独的示例文件中,命名为 example_test.go
。可以查看 io
包中的 example_test.go
了解示例的编写。
实现原理
在执行 go test
时,会运行示例。具体的实现原理,可以通过阅读 go test
命令源码和 testing
包中 文件了解。