前言
单元测试对于软件开发而言,可以帮助开发人员提前发现问题,可以帮助项目或产品将问题解决前移,从而达到研发效率的提升。
由于Go语言项目相比于其他语言(如C/C++)的项目有其特殊性,我们希望总结出一套适用于Go项目的单元测试实践。
测试包规范
1. 测试文件命名规则为:"xxx_test.go"
以"_test.go"结尾是Go语言测试的标准,必须遵循。
其中xxx是源文件名称,方便查找源代码和测试代码。
2. 测试文件与源码存放在同一目录
测试文件与源码存放在一起符合业界习惯。
3. 测试包命名与待测包一致
由于构建时自动忽略xxx_test.go文件,所以测试包使用源码包包名(也即包中既包含源代码也包含测试代码),没有使用上的风险。同时,带来的好处是可以测试源代码包中未对外暴露的接口。
测试代码规范
1. 测试代码仍然需要满足安全编码规范
测试代码中不能出现口令、密钥、姓名、工号、邮箱等信息。
2. 测试代码需要满足软件工程要求
需要满足如圈复杂度、代码重复率、文件重复率等相关要求。
未完待续