golang 示例测试example_testing - 运行并验证示例

Go的testing包不仅支持测试,还能验证示例。示例兼具文档和测试功能,以Example开头的函数配合"Output"注释进行比对。遵循特定命名规则,例如ExampleF用于函数F的示例,ExampleT_M用于类型T的方法M的示例。示例代码通常存于example_test.go文件中,godoc和go test命令分别负责展示文档和运行测试。
摘要由CSDN通过智能技术生成

testing - 运行并验证示例

testing 包除了测试,还提供了运行并验证示例的功能。示例,一方面是文档的效果,是关于某个功能的使用例子;另一方面,可以被当做测试运行。

一个示例的例子如下:

func ExampleHello() {

fmt.Println("Hello")

// Output: Hello

}

如果 Output: Hello 改为:Output: hello,运行测试会失败,提示:

got:

Hello

want:

hello

一个示例函数以 Example 开头,如果示例函数包含以 "Output" 开头的行注释,在运行测试时,go 会将示例函数的输出和 "Output" 注释中的值做比较,就如上面的例子。

有时候,输出顺序可能不确定,比如循环输出 map 的值,那么可以使用 "Unordered output" 开头的注释。

如果示例函数没有 "Output" 注释,该示例函数只会被编译而不会被运行。

命名约定

Go 语言通过大量的命名约定来简化工具的复杂度,规范代码的风格。对示例函数的命名有如下约定:

包级别的示例函数,直接命名为 func Example() { ... }

函数 F 的示例,命名为 func ExampleF() { ... }

类型 T 的示例,命名为 func ExampleT() { ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值