1, 选择
并不是所有的函数模块都有必要写单元测试,除非是为了完成100%的代码覆盖率。那么如果有效的选择单元测试的对象,才是第一步值得考虑的事情。
(1)开发过程中,单元测试应该来测试那些可能会出错的地方,或是那些边界情况。
(2)维护过程中,单元测试应该跟着我们的bug report来走,每一个bug都应该有个UT。于是程序员就会对自己的代码变更有两个自信,一是bug 被 fixed,二是相同的bug不会再次出现。
2, 何时写
构架能力强可以在开发之前写, 通常一边开发,一边写测试。
3, 有什么好处
(1)减少和定位bug,过早暴露问题。
(2)提高代码质量。
(3)增强开发人员的自信心。
4, 具体任务
(1)各条错误处理通路测试,保证每一个异常通过测试。
(2)每条独立路径可以通过,完成一定的代码覆盖率。
(3)变量是否有溢出。
(4)边界条件测试。
(5)考虑负面场景。
5, gtest工作流程
(1)创建测试
使用TEST()宏来定义和命名测试函数。
EXPECT_EQ(n, 2)使用各种Google Test断言来检查值。
测试结果由断言确定。