最近想給本身的一些開源的C++項目(元谷的github)用上google test。因而乎,稍微地學習了一下。git
這裏推薦一封比較不錯的使用教程: 《gtest的介紹和使用》github
我使用的是 1.8.1版本:下載學習
首先界面一下個人工程目錄: 測試
編寫的cmake文件,注意,根據您的狀況自行修改其中內容ui
cmake_minimum_required(VERSION 3.6) include_directories(${Project_SOURCE_DIR}/googletest-release-1.8.1/googletest/include) #關閉gmock,根據您的狀況打開 set(BUILD_GMOCK OFF) #編譯庫的例子 add_subdirectory(googletest-release-1.8.1) #新建一個測試工程 project(learnGoogleTest) add_executable(learnGoogleTest test.cpp) target_link_libraries(learnGoogleTest gtest gtest_main) #這個必須放在project的後面 IF(MSVC) message("run here") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") endif()
個人測試代碼以下:google
#include <gtest/gtest.h> #include <string> using namespace std; class TestMap :public testing::Test { public: //添加日誌 static void SetUpTestCase() { cout << "SetUpTestCase" << endl; } static void TearDownTestCase() { cout << "TearDownTestCase" << endl; } virtual void SetUp() //TEST跑以前會執行SetUp { cout << "SetUp" << endl; test_map.insert(make_pair(1, 0)); test_map.insert(make_pair(2, 1)); test_map.insert(make_pair(3, 2)); test_map.insert(make_pair(4, 3)); test_map.insert(make_pair(5, 4)); } virtual void TearDown() //TEST跑完以後會執行TearDown { cout << "TearDown" << endl; test_map.clear(); } map<int, int> test_map; }; TEST_F(TestMap, Find) //此時使用的是TEST_F宏 { map<int, int>::iterator it = test_map.find(1); ASSERT_NE(it, test_map.end()); } TEST_F(TestMap, Size) { ASSERT_EQ(test_map.size(), 5); }