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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
CppUnit 快速使用指南
作者:網絡轉載 發布時間:[ 2014/1/8 16:37:56 ] 推薦標簽:開發 CppUnit 開源

4. 常用使用方式

按照上面的方式,如果要添加新的測試用例,需要把每個測試用例添加到 TestSuite 中,而且添加新的 TestFixture 需要把所有頭文件添加到 main.cpp 中,比較麻煩。為此 CppUnit 提供了 CppUnit::TestSuiteBuilder,CppUnit::TestFactoryRegistry 和一堆宏,用來方便地把 TestFixture 和測試用例注冊到 TestSuite 中。下面是通常的使用方式:

/// MathTest.h
// A TestFixture subclass.
// Announce: use as your owner risk.
// Author  : liqun (liqun@nsfocus.com)
// Data    : 2003-7-5
#include "cppunit/extensions/HelperMacros.h"
class MathTest : public CppUnit::TestFixture {
 // 聲明一個TestSuite
 CPPUNIT_TEST_SUITE( MathTest );
 // 添加測試用例到TestSuite, 定義新的測試用例需要在這兒聲明一下
 CPPUNIT_TEST( testAdd );
 // TestSuite聲明完成
 CPPUNIT_TEST_SUITE_END();
 // 其余不變
protected:
 int m_value1, m_value2;
 
public:
 MathTest() {}
 
 // 初始化函數
 void setUp ();
 // 清理函數
 void tearDown();
 
 // 測試加法的測試函數
 void testAdd ();
 // 可以添加新的測試函數
};
/// MathTest.cpp
// A TestFixture subclass.
// Announce: use as your owner risk.
// Author  : liqun (liqun@nsfocus.com)
// Data    : 2003-7-5
#include "MathTest.h"
// 把這個TestSuite注冊到名字為"alltest"的TestSuite中, 如果沒有定義會自動定義
// 也可以CPPUNIT_TEST_SUITE_REGISTRATION( MathTest );注冊到全局的一個未命名的TestSuite中.
CPPUNIT_TEST_SUITE_NAMED_REGISTRATION( MathTest, "alltest" );
// 下面不變
void MathTest::setUp()
{
     m_value1 = 2;
     m_value2 = 3;
}
void MathTest::tearDown()
{
}
void MathTest::testAdd()
{
     int result = m_value1 + m_value2;
     CPPUNIT_ASSERT( result == 5 );
}
/// main.cpp
// Main file for cppunit test.
// Announce: use as your owner risk.
// Compile : g++ -lcppunit MathTest.cpp main.cpp
// Run     : ./a.out
// Test    : RedHat 8.0 CppUnit1.8.0
// Author  : liqun ( a litthle modification.liqun@nsfocus.com)
// Data    : 2003-7-5
// 不用再包含所有TestFixture子類的頭文件
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>
// 如果不更改TestSuite, 本文件后期不需要更改.
int main()
{
 CppUnit::TextUi::TestRunner runner;
 
 // 從注冊的TestSuite中獲取特定的TestSuite, 沒有參數獲取未命名的TestSuite.
 CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry("alltest");
 // 添加這個TestSuite到TestRunner中
 runner.addTest( registry.makeTest() );
 // 運行測試
 runner.run();
}

 
這樣添加新的測試用例只需要在類定義的開始聲明一下即可。

5. 其他實際問題

通常包含測試用例代碼和被測試對象是在不同的項目中。應該在另一個項目(好在不同的目錄)中編寫 TestFixture,然后把被測試的對象包含在測試項目中。

對某個類或者某個函數進行測試的時候,這個 TestFixture 可能引用了別的類或者別的函數,為了隔離其他部分代碼的影響,應該在源文件中臨時定義一些樁程序,模擬這些類或者函數。這些代碼可以通過宏定義在測試項目中有效,而在被測試的項目中無效。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 多人伦交性欧美在线观看 | 国产成人精彩在线视频50 | 国产3区| 一级片在线免费 | 久久久久久亚洲精品 | 激情五月婷婷开心 | 日韩欧一级毛片在线播无遮挡 | 国产精品一区二区国产 | 国产成人精品.一二区 | 看全色黄一级毛片 | 婷婷亚洲综合五月天在线 | 毛片在线播放视频 | 精品无人区一区二区三区a 精品午夜国产在线观看不卡 | 欧美成人免费一区在线播放 | 日韩图色| 欧洲日韩 | 青娱乐伊人| 成年女人免费又黄又爽视频 | 日韩一区二区三区在线免费观看 | 诱人的护士5中文字幕 | 中文字幕日本在线观看 | 久操视频在线观看 | 一级骚片 | 999精品久久久中文字幕蜜桃 | vktk视频| 欧美日韩午夜视频 | 黄色福利影院 | 亚洲综合网美国十次 | 国产一区二区免费播放 | 经典三级四虎在线观看 | 日韩精品久久久免费观看夜色 | 最新亚洲一区二区三区四区 | 精品国产乱码一区二区三区 | 又黄又爽又色的视频 | 久久免费视频一区 | 一级毛片看真人在线视频 | 五月天婷婷精品免费视频 | 国产小视频在线免费观看 | 日日操日日摸 | 婷婷午夜影院 | 黄色毛片大全 |