代码测试

目的

​ 确保代码的功能正常,代码的性能满足需求。

测试方法

​ 白盒测试(又称包内测试)、黑盒测试(又称包外测试)。

测试类型

​ 单元测试、性能测试、模糊测试、示例测试。

测试标志

​ 另请参阅:go命令中的go test部分go help testflag

测试规范

测试文件名的命名规范

​ go的测试文件的名称必须以_test.go结尾。

测试包名的命名规范

​ 对于白盒测试,测试包的包名和被测试包的包名一致;

​ 对于黑盒测试,通常是测试包的包名加上_test

测试函数名的命名规范

​ 对于单元测试,测试函数名必须Test开头,例如,TestXxxTest_xxx

​ 对于性能测试,测试函数名必须Benchmark开头,例如,BenchmarkXxxBenchmark_xxx

​ 对于示例测试,测试函数名必须Example开头,例如,ExampleXxxExample_xxx

​ 若想用多个测试用例来对某一被函数或方法进行单元测试,可以将测试场景添加到函数名末尾,例如,Strings.Compare函数有这些测试函数:TestCompareTestCompareIdenticalStringTestCompareStrings

测试变量名的命名规范

​ go语言和go test没有对变量的命名做任何约束,但有一些规范值得遵守。

​ 例如,为了清晰表达函数的实际输出和预期输出,可以将这两类输出命名为expected/actual或者got/want

​ 针对其他变量命名,可以遵循go语言推荐的变量命名方法。例如:

  • go中的变量名应该短而不是长,这对于范围有限的局部变量来说尤其如此。
  • 变量离声明越远,对名称的描述性要求越高。
  • 像循环、索引之类的变量,变量名可以是单个字母(例如,i)。若是不常见的变量和全局变量,变量名就需要具有更多的描述性。
最后修改 October 10, 2024: 更新 (a4b8f85)