歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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目錄下。

Copyright © Linux教程網 All Rights Reserved