Linux下Gtest测试框架应用实例


Gtest全称: Google C++ Testing Framework

项目链接: http://code.google.com/p/googletest/

Gtest是Google公司发布的一款非常优秀的开源C/C++单元测试框架,已被应用于多个开源项目及Google内部项目中,知名的例子包括ChromeWeb浏览器、LLVM编译器架构、ProtocolBuffers数据交换格式及工具等。至于它的优势,大家可以自己去网上搜索查看,本文主要用一个Demo描述怎么在Linux环境下使用它。

1. 下载SDK

链接:http://code.google.com/p/googletest/

我下载的版本是1.6.0

2. 解压

我解压后的位置是$HOME/bin/gtest-1.6.0

3. 编写测试用例

本例中要测试的是一个求阶乘的函数

函数头文件:func.H

  1. #ifndef FUNC_H   
  2. #define FUNC_H   
  3. int fac(int nInput);  
  4. #endif  

函数实现文件:func.C

  1. #include "func.H"   
  2. int fac(int nInput)  
  3. {  
  4.     if(nInput < 0)  
  5.     {  
  6.         return -1;  
  7.     }  
  8.   
  9.     int nRev = 1;  
  10.     for(int i = 1; i <= nInput; ++i)  
  11.     {  
  12.         nRev *= i;  
  13.     }  
  14.     return nRev;  
  15. }  

主程序文件:主程序文件:fac_test.C

  1. #include <limits>   
  2. #include "func.H"   
  3. #include "gtest/gtest.h"   
  4.   
  5. TEST(Fac_test, input_negative){  
  6.     EXPECT_EQ(-1, fac(-1));  
  7.     EXPECT_EQ(-1, fac(-2));  
  8.     EXPECT_EQ(-1, fac(-5));  
  9. }  
  10.   
  11. TEST(Fac_test, input_zero){  
  12.     EXPECT_EQ(1, fac(0));  
  13. }  
  14.   
  15. TEST(Fac_test, input_positive){  
  16.     EXPECT_EQ(1, fac(1));  
  17.     EXPECT_EQ(2, fac(2));  
  18.     EXPECT_EQ(6, fac(3));  
  19. }  

将这三个文件都放在$/HOME/demo目录下。

  • 1
  • 2
  • 下一页

相关内容