西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁編程開發(fā)其它知識 → 單元測試工具CppUTest怎么用?

單元測試工具CppUTest怎么用?

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/5/16 8:58:59字體大小:A-A+

作者:西西點擊:51次評論:1次標(biāo)簽: 單元測試

  • 類型:編程輔助大。3.3M語言:英文 評分:6.6
  • 標(biāo)簽:
立即下載

最近學(xué)習(xí)如何進行單元測試,于是研究了一下CppUTest的用法,雖然這工具經(jīng)常被推薦,但奇怪的是網(wǎng)上資料缺比較少,可能是因為太簡單了的原因吧,先記錄下來給自己看。

1.下載CppUTest

2.Linux常用安裝三板斧

./configure --prefix=目錄

make

make check

3.使用

CppUTest上有一個如何開始的說明

先編寫一個cpp文件

 1 /*注意,這個頭文件必須包含,不然編譯就報錯,比較坑的是官網(wǎng)并沒說要添加這個*/
 2 #include "CppUTest/UtestMacros.h" 
 3 
 4 TEST_GROUP(FirstTestGroup)
 5 {
 6 };
 7 
 8 TEST(FirstTestGroup,FirstTest)
 9 {
10     FAIL("fail me!");
11 }
然后再編寫一個cpp文件

 1 /*這幾個頭文件最好都包含了,反正以后也要用*/
 2 
 3 #include "CppUTest/CommandLineTestRunner.h"
 4 #include "CppUTest/TestPlugin.h"
 5 #include "CppUTest/TestRegistry.h"
 6 #include "CppUTestExt/MockSupportPlugin.h"
 7 
 8 int main(int ac,char** av)
 9 {
10     return CommandLineTestRunner::RunAllTests(ac, av);
11 }
最后再編寫一個Makefile文件

 1 CC=gcc

 2 CXX=g++
 3 
 4 #自己定義這個路徑
 5 CPPUTEST_HOME=/root/usr/cpputest-3.4
 6 
 7 FLAGS= -c
 8 
 9 CPPFLAGS += -I$(CPPUTEST_HOME)/include
10 
11 CFLAGS += -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorNewMacros.h
12 CXXFLAGS += -include $(CPPUTEST_HOME)/include/CppUTest/MemoryLeakDetectorMallocMacros.h
13 
14 LD_LIBRARIES = -L$(CPPUTEST_HOME)/lib -lCppUTest -lCppUTestExt
15 
16 #自己定義最后程序的名稱
17 TARGET=alltests
18 
19 #自己定義有哪些文件
20 OBJECTS=AllTest.o cpputest.o
21 SOURCES=AllTest.cpp cpputest.cpp
22 
23 $(TARGET):$(OBJECTS)
24     $(CXX) $^ $(LD_LIBRARIES) -o $@ 
25 
26 
27 .cpp.o:
28     $(CXX) $(FLAGS) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
29     
30 .c.o:
31     $(CXX) $(FLAGS) $(CPPFLAGS) $(CFLAGS) $< -o $@
32     
33 clean:
34     rm *.o $(TARGET)

然后make通過,就可以直接執(zhí)行了

最后看到輸出“fail me”就哦了。

基本用法的說明

簡單的CppUTest分成兩個部分

TEST_GROUP(FirstTestGroup) { };

TEST(FirstTestGroup,FirstTest) { }

TEST_GROUP的內(nèi)部定義自己測試中需要用到的變量和一些自己的函數(shù)(變量和函數(shù)只有定義在這個里面,屬于這一組的測試才能使用這些變量和函數(shù)),而且在TEST_GROUP中還可以繼承兩個CppUTest的函數(shù)

void setup(){}//這個函數(shù)中對變量進行初始化

void teardown(){}//對一些變量進行銷毀

TEST部分中就填入我們想要做的測試用例

CppUTest提供了很多的宏,如CHECK(bool),LONGS_EQUAL(excepted,actual)…等等宏,就行一些檢測,而不需要去關(guān)心C++語言的類的那些問題,所以CppUTest也可以用于C語言。

目前我能看到的用法就這么多,以后有了新的用法再擴展。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(1)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)