文件名称

代码示例的文件放置于包目录中,文件名称一般使用_example_test.go作为文件名后缀,这也是标准库的命名方式。在GF框架的代码中,同一个包下往往存在多个测试文件,代码示例文件的规则一般使用包名_example_test.go文件,并且代码示例文件也可以存在多个,例如:gset_example_any_test.go, gset_example_str_test.go, gset_example_int_test.go用于区分内部不同类型方法的示例。

代码格式

如果是导出的包方法示例,那么示例方法定义为:

其中XXX表示示例的包方法。

类型方法

其中YYY表示类型名称,XXX表示该类型对应的方法。

为了能更好地阐述,我们这里以gset包为例,代码示例文件内容的格式如下:

其中ExampleSet_IsSubsetOfSet表示该示例针对gset包中的Set类型,IsSubsetOf表示示例的是Set类型的IsSubsetOf方法使用。

Output断言注释

在代码示例中,断言注释是非常重要的,在Output后面的注释都是该示例在执行后的输出内容断言。Output断言注释的存在也将该代码示例作为单元测试的额外补充,提高代码覆盖率。

Output断言注释非必需,但很有必要,我们推荐所有的代码示例方法都加上该注释。如果没有Output断言注释,或者该示例无法断言,那么该代码示例方法仅仅是作为一个示例展示,没有更多的意义。

代码示例 - 图2

示例展示

代码示例写完后,如果是带有Output断言注释的方法将会在go test单元测试运行时同时运行该示例代码并执行对应的断言判断。如果是单纯的代码示例,将会展示在Godoc文档上,并且在Goland的代码提示中也会带有该代码示例。

我们仍然使用gset包来举例。

https://godoc.org/github.com/gogf/gf/container/gset#Set.IsSubsetOf

代码提示

鼠标移动到指定方法上即刻便有代码提示框: