单元测试是:

  • 针对软件设计的最小单位——程序模块
  • 进行正确性检验
  • 保证能够正确执行规定功能
  • 发现模块内部可能存在的差错

主要框架:GTest(Google Test)

重点:

  • 接口定义
  • 执行路径
  • 边界路径
  • 错误处理
  • 局部数据结构

接口定义

  • 方法、参数能不能是const
  • 能否使用引用
  • 方法、变量命名
  • 参数能否更少
  • 错误处理

执行路径

尽量测试到所有的分支,工程中尽量达到80%覆盖率。

检查所有推荐,是不是使用了无副作用的函数:unordered_map[]会自动添加元素

边界条件

参数等价类划分

错误处理

针对非法参数、打印可追溯的日志、友好提醒

局部数据结构

  • 检查无符号类型
  • 未初始化变量
  • 初始化过程
  • 溢出检查