歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Linux下Gtest測試框架應用實例

Linux下Gtest測試框架應用實例

日期:2017/3/1 10:26:22   编辑:Linux編程

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. int nRev = 1;
  9. for(int i = 1; i <= nInput; ++i)
  10. {
  11. nRev *= i;
  12. }
  13. return nRev;
  14. }

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

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

將這三個文件都放在$/HOME/demo目錄下。

Copyright © Linux教程網 All Rights Reserved