Google Test 系列之一 - HelloTest
版權聲明:本文為 cheng-zhi 原創(chuàng)文章文留,可以隨意轉載,但必須在明確位置注明出處竭沫!
什么是 Google Test燥翅?
Google Test
的全稱是 Google C++ Testing Framework
,它是 Google 開發(fā)的用于 C++ 的單元測試框架蜕提,優(yōu)秀并且跨平臺权旷,github 地址:Google Test。
Google 出品贯溅,必屬精品拄氯,我們有必要學會使用!
編譯 Google Test
下載 Google Test
git clone https://github.com/google/googletest.git
編譯 Google Test
我在 Windows
平臺使用 VS 2013 編譯它浅。
- 使用 VS 2013 打開
googletest\msvc\gtest.sln
工程 - 分別生成
Debug
和Release
的解決方案 - 在
googletest\msvc\gtest\Debug(Release)
下會生成 gtest(d).lib译柏,即編譯成功。
配置 Google Test
- 使用 VS 2013 新建一個 Win 32 控制臺工程 HelloTest
- 配置項目的 屬性 -> C/C++ -> 附加包含目錄姐霍,添加
...\googletest\include
鄙麦,.../
為你的前面的路徑 - 配置項目的 屬性 -> 鏈接器 -> 輸入典唇,添加
...\google_test_lib\gtestd.lib
,.../
為你的前面的路徑 - 配置 Debug 項目的 屬性 -> 代碼生成 -> 運行庫 為多線程調(diào)試(/MTd),如果是 Release 項目,則配置為多線程(/MT)
Debug
Release
使用 Google Test
在你的項目的 _tmain
這個函數(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);
// 運行所有的測試
RUN_ALL_TESTS();
// 等待删壮,避免運行之后立即結束
getchar();
return 0;
}
運行結果
結果
這里只是簡單的介紹了 Google Test 的基本配置和使用,詳細的使用在后續(xù)會介紹炎咖。