
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 編譯。
- 使用 VS 2013 打開
googletest\msvc\gtest.sln工程 - 分別生成
Debug和Release的解決方案 - 在
googletest\msvc\gtest\Debug(Release)下會(huì)生成 gtest(d).lib,即編譯成功。
配置 Google Test
- 使用 VS 2013 新建一個(gè) Win 32 控制臺(tái)工程 HelloTest
- 配置項(xiàng)目的 屬性 -> C/C++ -> 附加包含目錄,添加
...\googletest\include,.../為你的前面的路徑 - 配置項(xiàng)目的 屬性 -> 鏈接器 -> 輸入,添加
...\google_test_lib\gtestd.lib,.../為你的前面的路徑 - 配置 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ì)介紹。