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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
用CppUnit做C單元測試
作者:網絡轉載 發布時間:[ 2013/12/25 10:51:54 ] 推薦標簽:軟件測試 開源 測試

  在這個case我們得到四個可能的錯誤:

load method's return value
getData method's return value
number structure member's value
string structure member's value

  第二個用例也是相似的。但是困難點,我們需要使用已知的數據來填充fixture,把它存在磁盤臨時文件里,然后打開兩個文件(新的和輔助文件),讀并比較內容,兩者如一致正確

void DiskDataTestCase::storeTest()
{
DATA d;
DWORD tmpSize, auxSize;
BYTE *tmpBuff, *auxBuff;
TCHAR absoluteFilename[MAX_PATH];
DWORD size = MAX_PATH;

// configures structure with known data
d.number = FILE_NUMBER;
strcpy(d.string, FILE_STRING);

// convert from relative to absolute path

strcpy(absoluteFilename, AUX_FILENAME);
CPPUNIT_ASSERT( RelativeToAbsolutePath(absoluteFilename, &size) );

// executes action
fixture->setData(&d);
CPPUNIT_ASSERT( fixture->store("data.tmp") );

// Read both files contents and check results
// ReadAllFileInMemory is an auxiliar function which allocates a buffer
// and save all file content inside it. Caller should release the buffer.
tmpSize = ReadAllFileInMemory("data.tmp", tmpBuff);
auxSize = ReadAllFileInMemory(absoluteFilename, auxBuff);

// files must exist
CPPUNIT_ASSERT_MESSAGE("New file doesn't exists?", tmpSize > 0);
CPPUNIT_ASSERT_MESSAGE("Aux file doesn't exists?", auxSize > 0);

// sizes must be valid
CPPUNIT_ASSERT(tmpSize != 0xFFFFFFFF);
CPPUNIT_ASSERT(auxSize != 0xFFFFFFFF);

// buffers must be valid
CPPUNIT_ASSERT(tmpBuff != NULL);
CPPUNIT_ASSERT(auxBuff != NULL);

// both file's sizes must be the same as DATA's size
CPPUNIT_ASSERT_EQUAL((DWORD) sizeof(DATA), tmpSize);
CPPUNIT_ASSERT_EQUAL(auxSize, tmpSize);

// both files content must be the same
CPPUNIT_ASSERT( 0 == memcmp(tmpBuff, auxBuff, sizeof(DATA)) );

delete [] tmpBuff;
delete [] auxBuff;

::DeleteFile("data.tmp");
}


調用用戶接口

  后,我們看看用一個mfc 對話框(TestRunner.dll)用來說明。

  我們需要在我們的初始化函數中做如下初始化

#include <cppunit/ui/mfc/TestRunner.h>
#include <cppunit/extensions/TestFactoryRegistry.h>

BOOL CMy_TestsApp::InitInstance()
{
....

// declare a test runner, fill it with our registered tests and run them
CppUnit::MfcUi::TestRunner runner;

runner.addTest( CppUnit::TestFactoryRegistry::getRegistry().makeTest() );

runner.run();

return TRUE;
}

  只要定義一個test的實例,然后注冊所有用例,再執行case

上一頁12345下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 另类免费视频 | 一级在线观看视频 | 成人欧美一区二区三区在线 | 成人免费毛片观看 | 成人综合国产乱在线 | 456亚洲人成高清在线 | 免费看黄色片 | 国产毛片毛片精品天天看 | 深夜成人福利视频 | 久久国产精品伦理 | 中文在线观看永久免费 | 18在线网站 | 男女视频在线免费观看 | 亚洲视频一二区 | 成人涩涩| 亚洲国产欧美在线人网站 | 黄网视频 | 激情综合图区 | 久久精品视频网站 | 一级欧美视频 | 天天爽夜夜爽人人爽曰喷水 | 亚洲国产激情一区二区三区 | 黄网站在线观看视频 | 香蕉视频久久久 | 一级片网| 激性欧美在线播激性欧美 | 久久天天躁夜夜躁狠狠 | 日韩 欧美 亚洲国产 | 成人网mm视频在线观看 | 亚洲麻豆国产精品 | 国产成人a v在线影院 | 日韩国产欧美成人一区二区影院 | 日本不卡一区二区三区在线观看 | 亚洲经典在线中文字幕 | 手机在线资源 | 国产麻豆精品一区二区 | 欧美日韩一区二区视频免费看 | 免费国产不卡午夜福在线 | 国内一级片| 17videosex性欧美| 男女一进一出免费视频 |