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
- #ifndef FUNC_H
- #define FUNC_H
- int fac(int nInput);
- #endif
函數實現文件:func.C
-
- #include "func.H"
-
- int fac(int nInput)
- {
- if(nInput < 0)
- {
- return -1;
- }
-
- int nRev = 1;
- for(int i = 1; i <= nInput; ++i)
- {
- nRev *= i;
- }
- return nRev;
- }
主程序文件:主程序文件:fac_test.C
- #include <limits>
- #include "func.H"
- #include "gtest/gtest.h"
-
- TEST(Fac_test, input_negative){
- EXPECT_EQ(-1, fac(-1));
- EXPECT_EQ(-1, fac(-2));
- EXPECT_EQ(-1, fac(-5));
- }
-
- TEST(Fac_test, input_zero){
- EXPECT_EQ(1, fac(0));
- }
-
- TEST(Fac_test, input_positive){
- EXPECT_EQ(1, fac(1));
- EXPECT_EQ(2, fac(2));
- EXPECT_EQ(6, fac(3));
- }
將這三個文件都放在$/HOME/demo目錄下。