Google Test 系列之一 - HelloTest

Google Test 系列之一 - HelloTest


版權(quán)聲明:本文為 cheng-zhi 原創(chuàng)文章,可以隨意轉(zhuǎn)載,但必須在明確位置注明出處!

什么是 Google Test?

Google Test 的全稱是 Google C++ Testing Framework,它是 Google 開發(fā)的用于 C++ 的單元測試框架,優(yōu)秀并且跨平臺(tái),github 地址:Google Test。

Google 出品,必屬精品,我們有必要學(xué)會(huì)使用!

編譯 Google Test

下載 Google Test

git clone https://github.com/google/googletest.git

編譯 Google Test

我在 Windows 平臺(tái)使用 VS 2013 編譯。

  1. 使用 VS 2013 打開 googletest\msvc\gtest.sln 工程
  2. 分別生成 DebugRelease 的解決方案
  3. googletest\msvc\gtest\Debug(Release) 下會(huì)生成 gtest(d).lib,即編譯成功。

配置 Google Test

  1. 使用 VS 2013 新建一個(gè) Win 32 控制臺(tái)工程 HelloTest
  2. 配置項(xiàng)目的 屬性 -> C/C++ -> 附加包含目錄,添加...\googletest\include,.../為你的前面的路徑
  3. 配置項(xiàng)目的 屬性 -> 鏈接器 -> 輸入,添加...\google_test_lib\gtestd.lib.../為你的前面的路徑
  4. 配置 Debug 項(xiàng)目的 屬性 -> 代碼生成 -> 運(yùn)行庫多線程調(diào)試(/MTd),如果是 Release 項(xiàng)目,則配置為多線程(/MT)
Debug
Release

使用 Google Test

在你的項(xiàng)目的 _tmain 這個(gè)函數(shù)所在的文件里面添加下面的代碼

#include "stdafx.h"
//添加 Google Test 的頭文件
#include <gtest/gtest.h>

// 待測試的函數(shù)
int Foo(int a, int b)
{
    if (a == 0 || b == 0)
    {
        throw "don't do that";
    }
    int c = a % b;
    if (c == 0)
        return b;

    return Foo(b, c);
}


// 測試用例
TEST(FooTest, HandleNoneZeroInput){
    EXPECT_EQ(2, Foo(4, 10));
    EXPECT_EQ(6, Foo(30, 18));
}


// 程序入口
int _tmain(int argc, _TCHAR* argv[])
{
    // 初始化
    testing::InitGoogleTest(&argc, argv);

    // 運(yùn)行所有的測試
    RUN_ALL_TESTS();

    // 等待,避免運(yùn)行之后立即結(jié)束
    getchar();
    return 0;
}

運(yùn)行結(jié)果

結(jié)果

這里只是簡單的介紹了 Google Test 的基本配置和使用,詳細(xì)的使用在后續(xù)會(huì)介紹。

原文地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,628評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,159評論 25 708
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,276評論 6 342
  • C++調(diào)用python 在C/C++中嵌入Python,可以使用Python提供的強(qiáng)大功能,通過嵌入Python可...
    Bruce_Szh閱讀 13,996評論 1 7
  • 針對于如果要有序添加請求下來的數(shù)據(jù),我之前沒什么思路,這次看了視頻,覺得這個(gè)可以寫一下,這個(gè)方式是應(yīng)對,如果在一個(gè)...
    一米押金閱讀 397評論 0 0

友情鏈接更多精彩內(nèi)容