中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中怎么使用CppUnit進行單元測試

發布時間:2021-11-29 16:39:03 來源:億速云 閱讀:362 作者:iii 欄目:編程語言

這篇文章主要講解了“C++中怎么使用CppUnit進行單元測試”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“C++中怎么使用CppUnit進行單元測試”吧!

如果使用VC6,那么直接用VC6打開VC工程文件,選擇Batch Build(***自己對工程參數重新設置一下),然后就可以在源代碼包子目錄Lib中得到我們需要的庫文件。如果使用C/C++,那么用VC8打開VC6工程文件,并按提示直接轉換成.net版本。

同樣,選擇批生成,生成我們需要的庫文件。在VC8中編譯源代碼時會出現編譯錯誤“#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids”,將version("7.0")改為version("8.0")即可。

在開發應用程序過程中,我們可能會使用到很多第三方程序庫,如這里的CppUnit。為了方便,我們可以建立一個第三方程序庫的專用文件夾,并為具體的程序庫(如這里的CppUnit)建立子文件夾。然后在VC的Option中分別設置庫的頭文件路徑和庫文件連接路徑。

如果有Dll文件,則在系統變量PATH中加進DLL文件所在目錄,這樣,程序運行時就能搜索到該C/C++(注意,只有VC重啟后,PATH設置才會對從VC里直接運行的程序生效)。

同樣,這里我們也把CppUnit的頭文件和庫文件路徑加到VC的默認搜索路徑中。另外,需要指出,一般情況下,Dll文件是需要與生成的程序一同發布的,此時就必須將Dll文件拷貝到Project目錄中。此時,可以采取手動方式,也可以在Project的Post-Build Step中添加命令執行拷貝動作。

在VC中使用CppUnit進行單元測試時,可以選擇CppUnit的控制臺測試作界面和圖形測試界面。控制臺界面簡潔,而圖形界面較直觀,并且借助CppUnit提供的插件可以快速定位到斷言失敗的地方。一般情況下。

我們使用控制臺測試界面來測試Console程序,使用圖形測試界面來測試GUI程序,這樣測試Project不會影響被測試的Project。由于圖形測試界面的易用性,我們可能也希望用它來測試Console程序,此時稍微麻煩一點。下面分別介紹這幾種用法(以VC6為例,VC8類似)。

在下面的敘述中,把被測試Project叫做目標Project,把被測試類叫做目標類。使用CppUnit的Console測試界面測試Console程序
1. 創建一個工作區用于開發和測試,然后在該工作區中分別創建兩個Project,一個用于開發,另一個用于測試。

2. 在測試Project中,設置如下:
(1)設置連接庫:cppunit.lib(Release版)和cppunitd.lib(Debug版),或者使用動態鏈接庫版本cppunit_dll.lib、cppunit_dll.dll和cppunitd_dll.lib、cppunitd_dll.dll;
(2)在C/C++Code Generation中設置Use run-time library為Multithreaded Dll(Release版)和Debug Multithreaded Dll(Debug版)。

3. 為測試Project添加測試類,假如被測試的目標類為Demo,那么可以定義一個DemoTest的測試類:

class DemoTest: public CppUnit::TestFixture  {      CPPUNIT_TEST_SUITE(DemoTest);  // 參數為本測試類名      CPPUNIT_TEST(testFunc);        // 參數為測試函數名,與下面聲明的測試函數對應      CPPUNIT_TEST_SUITE_END();        public:      void setUp() {          // 在這里進行測試的初始化工作      }            void tearDown() {          // 在這里進行測試完畢后的清理工作      }            void testFunc();  // 測試函數,用來測試目標類的某一個細節  };     #endif // DEMO_TEST_H     文件DemoTest.cpp:  #include "DemoTest.h"  #include "../Demo/DemoTest.h"  // 這里為要測試的目標類的頭文件路徑,因為測試時要用到Demo類  #include <cppunit/extensions/HelperMacros.h>    CPPUNIT_TEST_SUITE_REGISTRATION(DemoTest);     void DemoTest::testFunc()  {      // 這里對Demo類進行測試,可以使用CPPUNIT_ASSERT、CPPUNIT_ASSERT_EQUAL等來斷言  }

感謝各位的閱讀,以上就是“C++中怎么使用CppUnit進行單元測試”的內容了,經過本文的學習后,相信大家對C++中怎么使用CppUnit進行單元測試這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

宝丰县| 定陶县| 兴国县| 江油市| 黄平县| 江口县| 合江县| 延吉市| 依兰县| 汉中市| 当阳市| 克拉玛依市| 莱芜市| 布尔津县| 襄城县| 盐池县| 筠连县| 庆安县| 惠州市| 镇沅| 霍邱县| 南漳县| 溆浦县| 乐业县| 隆昌县| 咸阳市| 报价| 新竹县| 牙克石市| 大田县| 丹东市| 静安区| 唐山市| 右玉县| 南郑县| 蓝田县| 隆回县| 镇江市| 同德县| 石棉县| 万荣县|