您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
單元測試框架Google Test系列之 - 初識gtest
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/12/9 16:33:08 ] 推薦標(biāo)簽:

上面可以看到,編寫一個測試案例是多么的簡單。 我們使用了TEST這個宏,它有兩個參數(shù),官方的對這兩個參數(shù)的解釋為:[TestCaseName,TestName],而我對這兩個參數(shù)的定義是: [TestSuiteName,TestCaseName],在下一篇我們再來看為什么這樣定義。

對檢查點(diǎn)的檢查,我們上面使用到了EXPECT_EQ這個宏,這個宏用來比較兩個數(shù)字是否相等。Google還包裝了一系列EXPECT_* 和ASSERT_*的宏,而EXPECT系列和ASSERT系列的區(qū)別是:

    1. EXPECT_*  失敗時,案例繼續(xù)往下執(zhí)行。

    2. ASSERT_* 失敗時,直接在當(dāng)前函數(shù)中返回,當(dāng)前函數(shù)中ASSERT_*后面的語句將不會執(zhí)行。

在下一篇,我們再來具體討論這些斷言宏。為了讓我們的案例運(yùn)行起來,我們還需要在main函數(shù)中添加如下代碼:
int _tmain(int argc, _TCHAR* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

“testing::InitGoogleTest(&argc, argv);” :gtest的測試案例允許接收一系列的命令行參數(shù),因此,我們將命令行參數(shù)傳遞給gtest,進(jìn)行一些初始化操作。gtest的命令行參數(shù)非常豐富,在 后面我們也會詳細(xì)了解到。

“RUN_ALL_TESTS()” :運(yùn)行所有測試案例

OK,一切緒了,我們直接運(yùn)行案例試試(一片綠色,非常爽):

五、總結(jié)

本篇內(nèi)容確實(shí)是非常的初級,目的是讓從來沒有接觸過gtest的同學(xué)了解gtest基本的使用。gtest還有很多更高級的使用方法,我們將會在 后面討論?偨Y(jié)本篇的內(nèi)容的話:

    1. 使用VS編譯gtest.lib文件

    2. 設(shè)置測試工程的屬性(頭文件,lib文件,/MT參數(shù)(和編譯gtest時使用一樣的參數(shù)行了))

    3. 使用TEST宏開始一個測試案例,使用EXPECT_*,ASSER_*系列設(shè)置檢查點(diǎn)。

    4. 在Main函數(shù)中初始化環(huán)境,再使用RUN_ALL_TEST()宏運(yùn)行測試案例。

優(yōu)點(diǎn):

    1. 我們的測試案例本身是一個exe工程,編譯之后可以直接運(yùn)行,非常的方便。

    2. 編寫測試案例變的非常簡單(使用一些簡單的宏如TEST),讓我們將更多精力花在案例的設(shè)計(jì)和編寫上。

    3. 提供了強(qiáng)大豐富的斷言的宏,用于對各種不同檢查點(diǎn)的檢查。

    4. 提高了豐富的命令行參數(shù)對案例運(yùn)行進(jìn)行一系列的設(shè)置。

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd