單元測試工具 CUnit 簡介(2)

發表于:2015-01-09來源:uml.org.cn作者:不詳點擊數: 標簽:單元測試工具
所有的斷言被定義在 3. 測試注冊簿 3.1 常用相關函數 #include CUnit/TestDB.htypedef struct CU_TestRegistrytypedef CU_TestRegistry* CU_pTestRegistryCU_ErrorCode CU_initialize_registry(

  所有的斷言被定義在

  3. 測試注冊簿

  3.1 常用相關函數

#include  <CUnit/TestDB.h>
typedef struct CU_TestRegistry
typedef CU_TestRegistry* CU_pTestRegistry
CU_ErrorCode CU_initialize_registry(void)
void CU_cleanup_registry(void)
CU_BOOL CU_registry_initialized(void)
CU_pTestRegistry CU_get_registry(void)
CU_pTestRegistry CU_set_registry(CU_pTestRegistry pTestRegistry)
CU_pTestRegistry CU_create_new_registry(void)
void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry)

  3.2 注冊簿內部結構體

  測試注冊簿是測試包和相關測試用例的倉庫。當用戶添加測試包或測試用例時,CUnit維護當前活動的測試注冊簿的狀態更新,當用戶選擇運行所有測試用例時,當前活動的注冊簿中所有的測試包均被執行。

  測試注冊簿結構在中定義,它包括所有測試包的數量、所有測試用例的數量以及一個指向該注冊簿中測試包鏈表的指針:

typedef struct CU_TestRegistry
{
unsigned int uiNumberOfSuites;
unsigned int uiNumberOfTests;
CU_pSuite    pSuite;
} CU_TestRegistry;
typedef CU_TestRegistry* CU_pTestRegistry;

  3.3 與注冊簿相關的其它函數

CU_pTestRegistry CU_get_registry(void)
CU_pTestRegistry CU_set_registry(CU_pTestRegistry pTestRegistry)
CU_pTestRegistry CU_create_new_registry(void)
void CU_destroy_existing_registry(CU_pTestRegistry* ppRegistry)

  4. 測試包及測試用例的管理

  4.1 相關函數及結構

#include <CUnit/TestDB.h>
typedef struct CU_Suite
typedef CU_Suite* CU_pSuite
typedef struct CU_Test
typedef CU_Test* CU_pTest
typedef void (*CU_TestFunc)(void)
typedef int (*CU_InitializeFunc)(void)
typedef int (*CU_CleanupFunc)(void)
CU_pSuite CU_add_suite(const char* strName,CU_InitializeFunc pInit,CU_CleanupFunc pClean);
CU_pTest   CU_add_test(CU_pSuite pSuite,const char* strName,CU_TestFunc pTestFunc);
typedef struct CU_TestInfo
typedef struct CU_SuiteInfo
CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[]);
CU_ErrorCode CU_register_nsuites(int suite_count, ...);
CU_ErrorCode CU_set_suite_active(CU_pSuite pSuite, CU_BOOL fNewActive)
CU_ErrorCode CU_set_test_active(CU_pTest, CU_BOOL fNewActive)
CU_ErrorCode CU_set_suite_name(CU_pSuite pSuite, const char *strNewName)
CU_ErrorCode CU_set_suite_initfunc(CU_pSuite pSuite, CU_InitializeFunc pNewInit)
CU_ErrorCode CU_set_suite_cleanupfunc(CU_pSuite pSuite, CU_CleanupFunc pNewClean)
CU_ErrorCode CU_set_test_name(CU_pTest pTest, const char *strNewName)
CU_ErrorCode CU_set_test_func(CU_pTest pTest, CU_TestFunc pNewFunc)
CU_pSuite CU_get_suite(const char* strName)
CU_pSuite CU_get_suite_at_pos(unsigned int pos)
unsigned int CU_get_suite_pos(CU_pSuite pSuite)
unsigned int CU_get_suite_pos_by_name(const char* strName)
CU_pTest CU_get_test(CU_pSuite pSuite, const char *strName)
CU_pTest CU_get_test_at_pos(CU_pSuite pSuite, unsigned int pos)
unsigned int CU_get_test_pos(CU_pSuite pSuite, CU_pTest pTest)
unsigned int CU_get_test_pos_by_name(CU_pSuite pSuite, const char *strName)

  4.2 注冊測試包

CU_pSuite CU_add_suite(const char* strName, CU_InitializeFunc    pInit, CU_CleanupFunc pClean)

  創建一個測試包,該測試包擁有自己特定的名字、初始化函數及清理函數。該測試包被注冊到一個測試注冊簿,該注冊簿在添加任意測試包之前須初始化。當前版本不支持獨立于注冊簿之外的測試包的創建,該函數不應該在測試執行期間被調用。

  在注冊簿中,推薦每個測試包有唯一的名字,這樣可以通過名字查找測試包。在上述函數中,測試包的初始化函數和清理函數是可選的,如果不需要這些函數可以傳參數NULL。

原文轉自:http://www.uml.org.cn/Test/201404151.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97