【问题标题】:What are Go example functions?什么是 Go 示例函数?
【发布时间】:2015-05-08 20:12:35
【问题描述】:

Go 测试包提到 example functions 如下:

func Example() { ... }
func ExampleF() { ... }
func ExampleT() { ... }
func ExampleT_M() { ... }

这些的含义和用例是什么?

【问题讨论】:

  • 我在您链接到的文档中没有看到任何不清楚的地方。 IMO,您的问题相当于“规范提到int它的含义和用例是什么?”即如此模糊/基本或没有真正的问题是无用的。
  • @icza 的回答很到位。文档没有提到示例函数与 godoc 一起使用,所以我不清楚你会用它们做什么。

标签: testing go


【解决方案1】:

示例函数是您正在记录的包或函数或其他代码的使用示例。示例函数将以源格式包含在生成的 godoc 中(而其他函数则不包含),格式正确,还应用了一些处理,例如,如果示例函数的最后一行包含以下格式的输出:

func ExampleExamples_output() {
    fmt.Println("Hello")
    // Output: Hello
}

指定输出的最后一行将被剥离并呈现在一个单独的块中,如下所示:Example (Output)

此外,如果提供了输出:运行包的测试套件(例如使用go test)也会执行示例函数,无需您进一步安排,Go 会将示例函数的输出与最后评论中指定的输出进行比较行 - 此结果将确定此示例功能是否通过“测试”。如果示例函数中没有指定输出,go test 只会编译而不执行。

查看此页面:package godoctricks

还发布了一篇关于示例函数的博客文章:

Testable Examples in Go

【讨论】:

  • 一个额外愚蠢的句法点:在// Output: 注释中,单词Output: 之间不能有空格。否则,示例函数不会被视为测试用例。
猜你喜欢
  • 2014-04-07
  • 2011-12-01
  • 2015-05-24
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多