GoogleTest(參數(shù)化)-4

之前的都是一個(gè)個(gè)的去進(jìn)行測(cè)試,比如一個(gè)判斷是不是素?cái)?shù)的函數(shù)欺矫,我測(cè)試就需要這樣:

TEST(IsPrimeTest, HandleTrueReturn)  
{  
    EXPECT_TRUE(IsPrime(3));  
    EXPECT_TRUE(IsPrime(5));  
    EXPECT_TRUE(IsPrime(11));  
    EXPECT_TRUE(IsPrime(23));  
    EXPECT_TRUE(IsPrime(17));  
}  

現(xiàn)在我要測(cè)試100個(gè)偷厦,我們是不是要這樣寫一百行呢,要是還要分成不同的測(cè)試案例呢兔综?這就需要我們引入一個(gè)參數(shù)化饿凛。

參數(shù)化

步驟

  1. 告訴gtest你的參數(shù)類型是什么,添加一個(gè)類软驰,繼承testing::TestWithParam<T>涧窒,其中T就是你需要參數(shù)化的參數(shù)類型,比如上面的找素?cái)?shù)例子锭亏,需要參數(shù)化一個(gè)int型的參數(shù)纠吴。
class IsPrimeParamTest : public::testing::TestWithParam<int>
{

};
  1. 告訴gtest你拿到參數(shù)的值后,具體做些什么樣的測(cè)試慧瘤。
    這里要使用一個(gè)新的宏:TEST_P戴已,關(guān)于這個(gè)"P"的含義,Google給出的答案就是可以理解為”parameterized" (參數(shù)化)或者 "pattern"(模型)锅减。在TEST_P宏里糖儡,使用GetParam()獲取當(dāng)前的參數(shù)的具體值。
TEST_P(IsPrimeParamTest, HandleTrueReturn)
{
    int n =  GetParam();
    EXPECT_TRUE(IsPrime(n));
}
  1. 告訴gtest你想要測(cè)試的參數(shù)范圍是什么

使用INSTANTIATE_TEST_CASE_P這宏來告訴gtest你要測(cè)試的參數(shù)范圍:

INSTANTIATE_TEST_CASE_P(TrueReturn, IsPrimeParamTest, testing::Values(3, 5, 11, 23, 17));  

第一個(gè)參數(shù)是測(cè)試案例的前綴怔匣,可以任意取握联。

第二個(gè)參數(shù)是測(cè)試案例的名稱,需要和之前定義的參數(shù)化的類的名稱相同每瞒,如:IsPrimeParamTest

第三個(gè)參數(shù)是可以理解為參數(shù)生成器金闽,上面的例子使用test::Values表示使用括號(hào)內(nèi)的參數(shù)。Google提供了一系列的參數(shù)生成的函數(shù):

函數(shù) 含義
Range(begin, end[, step]) 范圍在begin~end之間剿骨,步長為step代芜,不包括end
Values(v1, v2, ..., vN) v1,v2到vN的值
ValuesIn(container) and ValuesIn(begin, end) 從一個(gè)C類型的數(shù)組或是STL容器,或是迭代器中取值
Bool() 取false 和 true 兩個(gè)值
Combine(g1, g2, ..., gN) 將g1,g2,...gN進(jìn)行排列組合浓利,g1,g2,...gN本身是一個(gè)參數(shù)生成器挤庇,每次分別從g1,g2,..gN中各取出一個(gè)值,組合成一個(gè)元組(Tuple)作為一個(gè)參數(shù)荞膘。

注:Combine只在提供了<tr1/tuple>頭的系統(tǒng)中有效罚随。gtest會(huì)自動(dòng)去判斷是否支持tr/tuple玉工,如果你的系統(tǒng)確實(shí)支持羽资,而gtest判斷錯(cuò)誤的話,你可以重新定義宏GTEST_HAS_TR1_TUPLE=1遵班。

~ 更多函數(shù)實(shí)際引用例子:參數(shù)例子 ~

參數(shù)化后的測(cè)試案例名

命名規(guī)則大概為:
prefix/test_case_name.test.name/index
前綴/測(cè)試案例的名稱/索引

文章參考:https://www.cnblogs.com/coderzh/archive/2009/04/08/1431297.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屠升,一起剝皮案震驚了整個(gè)濱河市潮改,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌腹暖,老刑警劉巖汇在,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異脏答,居然都是意外死亡糕殉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門殖告,熙熙樓的掌柜王于貴愁眉苦臉地迎上來阿蝶,“玉大人,你說我怎么就攤上這事黄绩∠劢啵” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵爽丹,是天一觀的道長筑煮。 經(jīng)常有香客問我,道長粤蝎,這世上最難降的妖魔是什么真仲? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮诽里,結(jié)果婚禮上袒餐,老公的妹妹穿的比我還像新娘。我一直安慰自己谤狡,他們只是感情好灸眼,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著墓懂,像睡著了一般焰宣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捕仔,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天匕积,我揣著相機(jī)與錄音,去河邊找鬼榜跌。 笑死闪唆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钓葫。 我是一名探鬼主播悄蕾,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了帆调?” 一聲冷哼從身側(cè)響起奠骄,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎番刊,沒想到半個(gè)月后含鳞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芹务,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年蝉绷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枣抱。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡潜必,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沃但,到底是詐尸還是另有隱情磁滚,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布宵晚,位于F島的核電站垂攘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏淤刃。R本人自食惡果不足惜晒他,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逸贾。 院中可真熱鬧陨仅,春花似錦、人聲如沸铝侵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽咪鲜。三九已至狐赡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疟丙,已是汗流浹背颖侄。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留享郊,地道東北人览祖。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像炊琉,于是被迫代替她去往敵國和親展蒂。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容