Gtest 快速入門

2021-08-17 21:19:05 字數 2143 閱讀 6690

ubuntu開啟terminal

#download source

cd googletest-release-1.7.0

cmake -dbuild_shared_libs=on.

make

(參考**

我們以測試乙個階乘函式為例,首先準備待測試原始碼,然後構建gtest程式

在新的terminal

#回到當前的使用者根目錄

cd#新建資料夾 demo_test

mkdir demo_test

cd demo_test

#新建空白原始檔

touch frac.h frac.cpp test_main.cpp cmakelists.txt

copy 到對應檔案

#ifndef frac_h  

#define frac_h

int frac(int ninput);

#endif

#include#include"frac.h"

int frac(int x)

int f = 1;

for(int i = 1; i <= x; i++)

return f;

}

#include "frac.h"  

#include //test 是 gtest的巨集

test(frac_test, input_negative)

test(frac_test, input_zero)

test(frac_test, input_positive)

int main(int argc, char **argv)

cmakelists.txt的內容

cmake_minimum_version_required(2.8.3)

project(test_pro)

set(src_list test_main.cpp frac.cpp)

add_definition(-std = c++11)

set(cmake_cxx_standard 11)

add_executable(test_exe src_list)

include_directories(/home/name/exercise/gtest_demo

/home/name/googletest-release-1.7.0/include)

target_link_libraries(test_exe

/home/name/googletest-release-1.7.0/libgtest_main.so

/home/name/googletest-release-1.7.0/libgtest.so)

然後,進入demo_test資料夾下,

mkdir build

cd build

cmake ..

make

./test_exe

(參考源自:

test()與test_f()可分別用於測試函式、類。

//構建test_name下的第乙個測試sort1 

test(, )

//*是待填的,常用:eq(equal)nq(not equal) lt(less than) gt(great than) le(less than or equal) ....

test(, )

test_f(fixture)需要定義測試類

它要繼承自::testing::test, 在類中放置一些要測試的類的例項,然後完成test_f。

在測試工程檔案中

int main(int argc, char ** argv)

assert或expect判斷條件針對binary結果

還有單獨測試string變數的,高階用法參考gtest doc中的google prime

另外,比較大小是有精度限制的,如果要精確比較浮點數大小,assert可以選擇near

可以設定跳過一些test, 在test_name前加disable_

gtest快速入門

解壓,進入該目錄,按reame說明 安裝 1.5之前 make install可以安裝,1.6之後不可以。安裝可按readme裡的提示進行安裝 a g i.include i.c src gtest all.cc 注意,i後沒有空格,直接加.b ar rv libgtest.a gtest all....

c 測試框架gtest的入門

第一次接觸和使用c 的測試框架,在這裡記錄一下 我是在linux中的clion下使用的 參考資料 我下這個版本的 需要進入目錄 cmake一下,生成靜態庫檔案.a 參考這篇 實現 不用全部拖進去,只要我們需要的部分就可以了,兩個.a是cmake之後的產物,也要加入 cmake minimum req...

gtest測試框架使用詳解 GTest常用斷言

gtest 是一套用於編寫c 測試的框架,支援很多好用的特性,包括自動識別測試 豐富的斷言 生成報告等。gtest 斷言是類似於函式呼叫的巨集。經常使用斷言來測試類或函式的功能。當斷言失敗時,gtest則列印出斷言所在的檔案 行號,以及失敗資訊。判斷實際結果與預期結果是否相符的機制稱為斷言。gtes...