(Android下使用)Google Test C++單元測試框架(二)

使用TEST CASE

TEST() and TEST_F() implicitly register their tests with googletest. So, unlike with many other C++ testing frameworks, you don't have to re-list all your defined tests in order to run them.

TEST()和TEST_F() 用GoogleTest隱式注冊它們的測試爽哎。因此监憎,與許多其他C++測試框架不同汗茄,您不必重新列出所有定義的測試以便運行它們。

After defining your tests, you can run them with RUN_ALL_TESTS() , which returns 0 if all the tests are successful, or 1 otherwise. Note that RUN_ALL_TESTS() runs all tests in your link unit -- they can be from different test cases, or even different source files.

定義測試后,可以使用RUN_ALL_TESTS() 運行它們痹换,如果所有測試都成功醋虏,則返回0嫂易,否則返回1斧抱。

請注意常拓,RUN_ALL_TESTS() 運行鏈接單元中的所有測試——它們可以來自不同的測試用例,甚至是不同的源文件辉浦。

When invoked, the RUN_ALL_TESTS() macro:

當使用RUN_ALL_TESTS() 時, 以下過程會被執(zhí)行:

  1. Saves the state of all googletest flags
    保存所有GoogleTest標志的狀態(tài)

  2. Creates a test fixture object for the first test.
    為第一個測試創(chuàng)建測試設備對象弄抬。

  3. Initializes it via SetUp().
    通過Setup()初始化它。

  4. Runs the test on the fixture object.
    在fixture對象上運行測試宪郊。

  5. Cleans up the fixture via TearDown().
    通過TearDown()清理fixture掂恕。

  6. Deletes the fixture.
    刪除fixture。

  7. Restores the state of all googletest flags
    恢復所有GoogleTest標志的狀態(tài)

  8. Repeats the above steps for the next test, until all tests have run.
    為下一個測試重復上述步驟弛槐,直到所有測試都運行完畢懊亡。

IMPORTANT: You must not ignore the return value of RUN_ALL_TESTS(), or you will get a compiler error. The rationale for this design is that the automated testing service determines whether a test has passed based on its exit code, not on its stdout/stderr output; thus your main() function must return the value of RUN_ALL_TESTS().
Also, you should call RUN_ALL_TESTS() only once. Calling it more than once conflicts with some advanced googletest features (e.g. thread-safe death tests) and thus is not supported.

注意:RUN_ALL_TESTS()返回值不能被忽略,而且使用過程中只能被調(diào)用一次乎串。

當然在使用RUN_ALL_TESTS()之前要進行初始化操作店枣。

testing::InitGoogleTest(&argc, argv);

android代碼實例

工程路徑為:
androidCode/test/gtest_add

androidCode為源碼根目錄。

test.cpp:

#include "stdio.h"
#include "gtest/gtest.h"

int  add_sum(int a, int b)
{
    return a + b;
}

TEST(addsumTest, OneAddZeroInput) {
  EXPECT_EQ(add_sum(1,0), 1);
}

TEST(addsumTest, addSomeInput) {
  EXPECT_EQ(add_sum(1, 0), 1);
  EXPECT_EQ(add_sum(2, 0), 2);
  EXPECT_EQ(add_sum(3, 3), 6);
  EXPECT_EQ(add_sum(8, 1024), 40320);
}

int main(int argc, char **argv){
    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS();
}

Android.mk:

LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

LOCAL_SRC_FILES :=  \
    test.cpp

LOCAL_CFLAGS := \
    -Wall

LOCAL_C_INCLUDES := \
    $(LOCAL_PATH)/../../external/googletest/googletest/include  

LOCAL_STATIC_LIBRARIES += libgtest libgtest_main
LOCAL_CLANG_CFLAGS += -Wno-error=unused-lambda-capture


LOCAL_MODULE:= bymanbu_test

include $(BUILD_EXECUTABLE)
include $(call all-makefiles-under, $(LOCAL_PATH))

編譯

進入源碼的根路徑:

$ source build/envsetup.sh
$ lunch aosp_arm64-eng
image.png

將工程添加到test/下叹誉。
執(zhí)行mma編譯:

image.png

OK鸯两,大功告成,可以放到真機上去運行了长豁,不過是native層甩卓,需要使用adb。O(∩_∩)O哈哈~

執(zhí)行結(jié)果

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蕉斜,一起剝皮案震驚了整個濱河市逾柿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宅此,老刑警劉巖机错,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異父腕,居然都是意外死亡弱匪,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門璧亮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萧诫,“玉大人,你說我怎么就攤上這事枝嘶×比模” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵群扶,是天一觀的道長及刻。 經(jīng)常有香客問我镀裤,道長,這世上最難降的妖魔是什么缴饭? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任暑劝,我火速辦了婚禮,結(jié)果婚禮上颗搂,老公的妹妹穿的比我還像新娘担猛。我一直安慰自己,他們只是感情好丢氢,可當我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布毁习。 她就那樣靜靜地躺著,像睡著了一般卖丸。 火紅的嫁衣襯著肌膚如雪纺且。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天稍浆,我揣著相機與錄音载碌,去河邊找鬼。 笑死衅枫,一個胖子當著我的面吹牛嫁艇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播弦撩,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼步咪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了益楼?” 一聲冷哼從身側(cè)響起猾漫,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎感凤,沒想到半個月后悯周,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡陪竿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年禽翼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片族跛。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡闰挡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出礁哄,到底是詐尸還是另有隱情长酗,我是刑警寧澤,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布姐仅,位于F島的核電站花枫,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掏膏。R本人自食惡果不足惜劳翰,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望馒疹。 院中可真熱鬧佳簸,春花似錦、人聲如沸颖变。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腥刹。三九已至马胧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衔峰,已是汗流浹背佩脊。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留垫卤,地道東北人威彰。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像穴肘,于是被迫代替她去往敵國和親歇盼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,554評論 2 349

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

  • 什么是gtest gtest是一個跨平臺的(Liunx评抚、Mac OS X豹缀、Windows、Cygwin慨代、Windo...
    Lee_5566閱讀 3,136評論 0 3
  • 一周的小學生活接近尾聲耿眉,你們在這一周里體驗了小學生的生活。上課鱼响、玩耍鸣剪、喝水、吃加餐丈积、走路筐骇,吃飯、打掃江滨、睡覺……...
    小小冰棍兒閱讀 310評論 0 1
  • 目標:在2018年12月31日前铛纬,輕松擁有財富自由、喜悅及豐盛唬滑。 種子實踐:1告唆、懷著喜悅的心情棺弊,將錢寶寶放入盒子,...
    藍天碧水_36a9閱讀 99評論 0 0
  • (2017年3月18日通過) 商場如戰(zhàn)場擒悬,競爭很激烈模她。為了把生意做穩(wěn)做好, 為了我們自己的利益懂牧。特制定本制度侈净。...
    鎮(zhèn)南方良金閱讀 230評論 0 2
  • 如果一池子的水是污水,那池子里面的魚兒會窒息僧凤。如果魚兒以為是自己游的水層太低的原因畜侦,等拼命游到貼近水面時發(fā)現(xiàn)真相就...
    天賦還沒用到閱讀 244評論 0 6