Go的测试包提到了示例函数,例如:
func Example() { ... }
func ExampleF() { ... }
func ExampleT() { ... }
func ExampleT_M() { ... }
这些的意义和使用情况是什么?
示例函数是您所记录的包、函数或其他代码的用法示例。示例函数将以源代码形式包含在生成的godoc中(而其他函数则不会),并进行适当格式化和一些处理,例如如果示例函数的最后一行包含输出,则格式如下:
func ExampleExamples_output() {
fmt.Println("Hello")
// Output: Hello
}
最后指定输出的行将被剥离并以单独的块呈现,如此处所示:Example (Output)。
如果提供了输出,运行包的测试套件(例如使用go test
)也会执行示例函数,无需您进行进一步的安排,Go将比较示例函数的输出与最后一个注释行中指定的输出-这个结果将决定此示例函数是否“测试”通过。如果在示例函数中未指定输出,则go test
仅编译它,但不会执行它。
请查看此页面:package godoctricks
还发布了一篇关于示例函数的博客文章:
// Output:
注释中,单词 Output
和 :
之间不能有空格。否则,Example函数将不被视为测试用例。 - LeGEC
godoc
一起使用的,因此我不清楚您将如何使用它们。 - Calin