GTest单元测试.pptVIP

  • 10
  • 0
  • 约5.4千字
  • 约 40页
  • 2017-02-19 发布于上海
  • 举报
1.3.2 事件机制 Gtest事件机制分类: 全局:发生在所有案例执行前后 TestSuite:案例中所有案例执行前后 TestCase: 单个案例前后 全局事件 要实现全局事件,必须写一个类,继承testing::Environment类,实现里面的SetUp和TearDown方法。 1. SetUp()方法在所有案例执行前执行 2. TearDown()方法在所有案例执行后执行 TestSuite事件 需要实现一个类,继承testing::Test,然后实现两个静态方法 1. SetUpTestCase() 方法在第一个TestCase之前执行 2. TearDownTestCase() 方法在最后一个TestCase之后执行 TestCase事件 TestCase事件发生在每个TestCase执行前后 1. SetUp()方法在每个TestCase执行前执行 2. TearDown()方法在每个TestCase执行后执行 当被测函数需要传入不同的值时,可以考虑Gtest提供的参数化测试功能。 1.3.3 参数化测试 INSTANTIATE_TEST_CASE_P(param1,param2,param3) param1:任意取; param2:测试案例的名称; param3:参数生成器 (eg:testing::Values()); 使用说明: 在运行Gtest时,Gtest提供了一系列的参数可以使我们对案例的执行进行有效的控制。 1.3.4 运行参数? Gtest工程产生exe文件图 运行输出案例表参数图示 测试案例集合参数 参数列表 测试案例输出参数 测试案例异常处理参数 1.3.5 death测试 在测试过程中,对于可能导致程序崩溃的输入,我们可以检查程序是否按预期的方式崩溃,验证崩溃结果。 注意事项: 1. 不要在死亡测试里释放内存。 2. 在父进程里再次释放内存。 3. 不要在程序中使用内存堆检查。 环境要求:Linux, Windows (requires MSVC 8.0 or above), Cygwin, and Mac (the latter three are supported since v1.3.0). VS2008下简单实现示例 EXPECT_DEATH(statement, regex); 1. statement是被测试的代码语句 2. regex是一个正则表达式,用来匹 配异常时在stderr中输出的内容 EXPECT_EXIT(statement, predicate, regex) 1. statement是被测试的代码语句 2. predicate 在这里必须是一个委托,接收int型参数,并返回bool。 只有当返回值为true时,死亡测试案例才算通过。 如果程序正常退出并且退出码与exit_code相同则返回 true VS2008下简单实现示例 Windows 下正规表达式风格: Simple风格:GTEST_USES_SIMPLE_RE=1(预处理处添加) 1.4 Googletest 环境搭建 搭建步骤: (1) 设置gtest头文件路径 (2) 设置gtest.lib路径 1.5 Googletest 使用 (1)创建单元测试工程

文档评论(0)

1亿VIP精品文档

相关文档