亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
如何使用CppUnit進行單元測試
作者:網絡轉載 發布時間:[ 2013/12/23 11:39:41 ] 推薦標簽:

  首先在project中打開RTTI開關,具體位置在菜單Project/Settings/C++/C++ Language。如下圖所示設置:

  由于CppUnit所用的動態運行期庫均為多線程動態庫,因此你的單元測試程序也得使用相應設置,否則會發生沖突。于是我們在Project/Settings/C++/Code Generation中進行如下設置:
  在Use run-time library一欄中,針對debug和release分別設置為‘Debug Multithreaded DLL’和‘Multithreaded DLL’。如下圖所示:

  后別忘了在project中link正確的lib。包括本例采用的cppunit.lib和cppunitd.lib靜態庫以及用于GUI方式的TestRunner.dll對應的lib。具體位置在Project/Settings/Link/General

  在‘Object/library modules’中,針對debug和release分別加入cppunitd.lib testrunnerd.lib和cppunit.lib TestRunner.lib。如下圖所示:

  后,由于TestRunner.dll為我們提供了基于GUI的測試環境。為了讓我們的測試程序能正確的調用它,TestRunner.dll必 須位于你的測試程序的路徑下。所以把/lib目錄下的testrunnerd.dll和TestRunner.dll文件分別拷貝到UnitTest priject的程序debug和release版本輸出目錄中。如下圖所示:

  (這是release版本)只要放在一起可以了。
  配置工作終于完成,下面開始寫測試框架。

  在CppUnit中, 是以TestCase為小的測試單位, 若干TestCase組成一個TestSuite。所以我們要先建立一個TestCase。

  在UnitTest project中新建一個類, 命名為CPlusTestCase, 讓其從CppUnit::TestCase派生。為其新增一個方法,假設為 void testAdd(); 我們將在這個函數中寫入我們的一些測試代碼(還記得我們要測試的構想中的CPlus::Add(…)嗎)。代碼如下:切記要包含頭文件

#include <cppunit/TestCase.h>
class CPlusTestCase : public CppUnit::TestCase
{
public:
    CPlusTestCase ();
    virtual ~ CPlusTestCase ();
    void testAdd();
};

  接下來, 我們要對我們的CPlusTestCase進行聲明。聲明用到了三個宏.

 CPPUNIT_TEST_SUITE();
 CPPUNIT_TEST();
 CPPUNIT_TEST_SUITE_END();

  第一個宏聲明一個測試包(suite),第二個宏聲明(添加)一個測試用例. 現在我們的CPlusTestCase類看上去象這樣:切記要包含頭文件,否則無法識別這些宏。

#include <cppunit/TestCase.h>
#include <CppUnit/extensions/HelperMacros.h>

class CPlusTestCase : public CppUnit::TestCase
{
    CPPUNIT_TEST_SUITE(CPlusTestCase);
    CPPUNIT_TEST(testAdd);
    CPPUNIT_TEST_SUITE_END();
public:
    CPlusTestCase ();
    virtual ~ CPlusTestCase ();
    void testAdd();
};


  通過這幾個宏,我們把CPlusTestCase和testAdd注冊到了測試列表當中。

  接下來,我們要注冊我們的測試suite. 使用CPPUNIT_TEST_SUITE_NAMED_REGISTRATION()來注冊一個測試suite. 這個宏的第二個參數是我們注冊的suite的名字. 在這里我們可以用字符串來代替, 但我們用一個靜態函數來返回這個suite的名字.

// PlusTestCase.h
class CPlusTestCase : public CppUnit::TestCase
{
    CPPUNIT_TEST_SUITE(CPlusTestCase);
    CPPUNIT_TEST(testAdd);
    CPPUNIT_TEST_SUITE_END();
public:
    CPlusTestCase ();
    virtual ~ CPlusTestCase ();
   void testAdd();
    static std::string GetSuiteName();
};
    // PlusTestCase.cpp
    std::string CPlusTestCase::GetSuiteName()
    {
            return " CPlus ";
    }

  記得要在PlusTestCase.h中包含 #include <string>

  然后在 PlusTestCase.cpp注冊我們的suite.

  CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(CPlusTestCase, CPlusTestCase::GetSuiteName());

  它將CPlusTestCase這個TestSuite注冊到一個指定的TestFactory工廠中。

  接下來我們寫一個注冊函數static CppUnit::Test* GetSuite(), 使其在運行期生成一個Test.

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美xxxx做受欧美 | 天天躁夜夜躁狠狠躁2021a | 国产中文字幕乱人伦在线观看 | 中文字幕一区二区三区免费看 | 成人1000部免费观看视频 | 天天拍夜夜添久久精品中文 | 黄色大毛片| 欧美一级特黄aa大片视频 | 中文无码日韩欧 | 在线天堂网| 国产香蕉国产精品偷在线观看 | 丁香伊人五月综合激激激 | 黄色片国产 | 久久青青成人亚洲精品 | 黄色一级α片 | 麻豆国产精品一二三在线观看 | 日日噜噜噜夜夜爽爽狠狠69 | 免费99视频有精品视频高清 | 玖玖成人| 噜噜噜噜精品视频在线观看 | 中文字幕日韩在线观看 | 免费人成视网站在线不卡 | 精品久久久久久综合日本 | 日韩毛片网 | 九九九在线视频 | 免费看污视频的软件 | 三级网站 | 真实国产乱弄免费视频 | 成人不卡视频 | 精品色视频 | 久久一级毛片 | 99中文字幕在线 | 成人午夜视频在线观 | 高h喷水荡肉爽文np欲 | 天天摸夜添狠狠添高 | 日本一区二区三区在线 观看网站 | 国产一级a毛片 | 青青青亚洲精品国产 | 日韩a级毛片免费观看 | 99热青青草| 欧美人成在线观看网站高清 |