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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
用cpp做c++單元測試
作者:網絡轉載 發布時間:[ 2013/3/18 14:02:48 ] 推薦標簽:

使用 CPPUnit

你能在這里http://cppunit.sourceforge.net/得到新的CPPUnit 版本, 你能發現所有的庫 , 文獻, 例子和其它有趣的材料。(我下載了版本為1.8.0 并且這個頒布工作良好)

在Win32里, 你能在VC++ 之下(6.0 和以后版本)使用CPPUnit , 但是當CPPUnit 使用ANSI C++, 有少量接口時針對其它環境象C++Builder。

在CPPUnit發布版本里面,所有建造庫的步驟和信息,可以在INSTALL-WIN32.txt文件找到,。當所有二進制文件被構建之后, 你能寫你自己的測試集了。

想在VC中寫自己的測試程序,可以按照以下步驟:
建立一個MFC的對話框(或文檔視圖結構)
允許時間類型信息,Alt+F7 --> C/C++ --> C++ language --> Enable RTTI
把Cppunitinlude放到include目錄:Tools - Options - Directories - Include.
用cppunitd.lib (靜態連接) 或者cppunitd_dll.lib (動態鏈接),testrunnerd.lib來鏈接你的程序。
如果動態鏈接,要把testrunnerd.dll 拷到應用程序目錄來運行。

Ok,看一下測試用例的類的定義吧。

#if !defined(DISKDATA_TESTCASE_H_INCLUDED)
#define DISKDATA_TESTCASE_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

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

#include "DiskData.h"

class DiskDataTestCase : public CppUnit::TestCase
{
  CPPUNIT_TEST_SUITE(DiskDataTestCase);
      CPPUNIT_TEST(loadTest);
      CPPUNIT_TEST(storeTest);
  CPPUNIT_TEST_SUITE_END();

public:
    void setUp();
    void tearDown();

protected:
    void loadTest();
    void storeTest();

private:
    DiskData *fixture;  
};

#endif
首先, 必須包含TestCase.h和HelperMacros.h. 第一步,我們的從我們的Testcase基類配生的新類。第二,用一些宏使我們的定義的更方便,如 CPPUNIT_TEST_SUITE (開始測試定義), CPPUNIT_TEST (定義一個測試用例) 或 CPPUNIT_TEST_SUITE_END (結束一個測試集).

我們的類(DiskDataTestCase)有重載了兩個方法setUp()和tearDown(). 一個開始,一個結束測試。

測試過程如下

啟動程序
點擊“Run”
調用Call setUp()方法: 構建我們的測試對象fixture
調用第一個測試方法
調用tearDown() 方法,清除對象
調用Call setUp()方法: 構建我們的測試對象fixture
調用第一個測試方法
調用Call setUp()方法: 構建我們的測試對象fixture
...
像下面的形式:

#include "DiskDataTestCase.h"

CPPUNIT_TEST_SUITE_REGISTRATION(DiskDataTestCase);


void DiskDataTestCase::setUp()
{
    fixture = new DiskData();
}

void DiskDataTestCase::tearDown()
{
    delete fixture;
    fixture = NULL;
}


void DiskDataTestCase::loadTest()
{
    // our load test logic
}


void DiskDataTestCase::storeTest()
{
    // our store test logic
}


編寫測試用例
一旦我們知道我們要測什么之后,我們可以寫測試用例了。我們能夠執行所有的我們需要的操作:使用普通庫函數,第三方庫,win32api庫函數,或簡單使用c++內部操作

有時候,我們需要調用外部輔助文件或者數據庫,比較外部文件和內部數據是否一致。
每發現一個錯誤時9比如發現內部數據和外部數據不同我們創建一個異常,使用 CPPUNIT_FAIL(message) 來顯示異常信息。

檢測一個條件使用
CPPUNIT_ASSERT(condition):如果為false拋出異常
CPPUNIT_ASSERT_MESSAGE(message, condition): 如果為false拋出制定的信息。
CPPUNIT_ASSERT_EQUAL(expected,current): 檢測期望值
CPPUNIT_ASSERT_EQUAL_MESSAGE(message,expected,current): 當比較值不相等時候拋出的制定的信息。
CPPUNIT_ASSERT_DOUBLES_EQUAL(expected,current,delta): 帶精度的比較

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 一区二区中文字幕在线观看 | 蜜臀91精品国产免费观看 | 欧美色图另类图片 | 成人xxxxx| 伊人www | 午夜在线免费观看 | 五月婷婷丁香在线视频 | 免费毛片在线 | 日韩高清在线播放 | 黄色小视频在线播放 | 日本人与人xxⅹ | 日韩精品免费一级视频 | 色羞羞 | 国产精品亚洲一区二区在线观看 | 曰曰啪天天拍视频在线 | 三级大片在线观看 | 看全色黄大色黄女片18 | 中文字幕亚洲第一 | 日韩成人中文字幕 | 久中文字幕中文字幕亚洲无线 | 午夜视频在线观看视频 | 日韩在线观看网站 | 国产成人免费永久播放视频平台 | 免费一区二区三区在线视频 | 欧美成人伦理 | 香蕉成人国产精品免费看网站 | 亚洲精品456播放 | 久久久久久久久综合影视网 | 高清 国产 日韩 欧美 | 高清一区二区亚洲欧美日韩 | 国产网曝手机视频在线观看 | 国产白丝丝高跟在线观看 | 国内精品一区二区在线观看 | 日韩欧美中文字幕出 | 在线亚洲激情 | 中文字幕天天躁日日躁狠狠 | 天天碰天天射 | 香蕉午夜| 久久精品国产第一区二区 | 国产精品无码制服丝袜 | 青青青青久久精品国产h |