单元测试和gtest

背景

1、互联网公司的角色

  • 开发——RD
  • 测试——QA
  • 运维——OP
  • 产品经理——PM

2、项目开发流程

  • 背景调研——竞品调研
  • 需求评审——MRD需求标准
  • RD/QA反馈排期
  • 项目设计——RD设计好如何进行设计
  • 开发编码——RD搬砖
  • QA测试
  • 上线/发布

3、软件测试

(1)从开发周期:单元测试——集成测试——系统测试——验收测试——回归测试

(2)从测试形式:黑盒测试——白盒测试——灰盒测试

4、单元测试

(1)概念:RD/QA通过编写代码针对一个一个的函数进行测试

(2)意义:一个 bug 被发现的越早,解决成本越低 . ( 开发中 <  单元测试 <  集成测试 <  上线 ).;另一方面,充分的单元测试有助于加快项目的迭代速度,方便回归测试。 

gtest简介

gtest的主要使用者是RD

gtest是业界广泛使用的单元测试框架

gtest的特点:

  • gtest需要使用的头文件和宏函数更集中,并支持测试用例的自动注册。
  • gtest不要求Python等外部工具。
  • gtest更简洁容易上手。

测试宏TEST

1、TEST

  • 使用TEST宏来创建一个测试
  • TEST宏有两个参数,TEST(testcasename,test_name)
  • TEST宏中可以写任何C++的合法语句
  • 使用gtest提供的断言(ASSERT和EXPECT来判定测试结果)

2、测试宏

ASSERT_系列:如果检测失败,退出当前测试

EXPECT_系列:如果检测失败,继续往下跑

通过operator<<能够在失败时打印需要的日志

 

事件机制

“事件”的本质是框架给你提供了一个机会,让你能在这样的几个机会来执行你自定制的代码,来给测试用例准备/清除数据

“机会”分为三组:

  • 每个test的开始/结束
  • 每个test_case的开始/结束
  • 全局的开始/结束

 

你可能感兴趣的:(单元测试和gtest)