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

發表于:2015-04-22來源:uml.org.cn作者:火龍果軟件點擊數: 標簽:CUnit
該函數返回值分為五種: CUE_SUCCESS suite creation was successful. CUE_NOREGISTRY Error the registry has not been initialized. CUE_NO_SUITENAME ErrorstrName was NULL.CUE_DUP_SUITE Warning th

  該函數返回值分為五種:

CUE_SUCCESS suite creation was successful.

  CUE_NOREGISTRY Error the registry has not been initialized.

  CUE_NO_SUITENAME ErrorstrName was

  NULL.CUE_DUP_SUITE Warning the suite's name was not unique.

  CUE_NOMEMORY Error memory allocation failed.

  4.3 添加測試用例到測試包

CU_pTest CU_add_test(CU_pSuite pSuite, const char* strName, CU_TestFunc pTestFunc)

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

  在單個測試包中,推薦每個測試用例有唯一的名字,這樣可以通過名字查找測試用例。參數接受一個測試函數的函數指針,不可以為空,當執行測試時,該函數將被調用。測試函數沒有參數也沒有返回值。

  該函數返回值分為7種:

CUE_SUCCESS suite creation was successful.

  CUE_NOREGISTRY Error: the registry has not been initialized.

  CUE_NOSUITE Error: the specified suite was NULL or invalid.

  CUE_NO_TESTNAME Error: strName was NULL.

  CUE_NO_TEST Error: pTestFunc was NULL or invalid.

  CUE_DUP_TEST Warning: the test's name was not unique.

  CUE_NOMEMORY Error: memory allocation failed.

  4.4 測試包及測試用例管理的快捷方法

  CUnit定義了許多類似如下的宏:

#define CU_ADD_TEST(suite, test) (CU_add_test(suite, #test, (CU_TestFunc)test))

  這些宏可以針對測試函數名字,自動生成擁有惟一名字的測試用例,并將該測試用例添加到指定的測試包,用戶應該驗證返回值以保證正常添加。

CU_ErrorCode CU_register_suites(CU_SuiteInfo suite_info[])

  CU_ErrorCode CU_register_nsuites(int suite_count, ...)

  對于擁有很多測試包和測試用例的大型測試結構,管理測試包和測試用例的關聯和注冊是相當乏味和易出錯的。CUnit提供了一個特殊的注冊系統來幫助用戶管理測試包和測試用例。這個系統將測試包的注冊和測試用例的關聯集中起來,以縮減用戶的代碼量。

  CU_TestInfo實例可以將許多測試用例集中放到一個數組,以便于關聯到一個測試包。每個數組元素包括一個惟一的名字和測試函數。該數組必須以CU_TEST_INFO_NULL結尾。

CU_TestInfo test_array1[] = {
{ "testname1", test_func1 },
{ "testname2", test_func2 },
{ "testname3", test_func3 },
CU_TEST_INFO_NULL,
};

  同樣的,CU_SuiteInfo也提供類似的封裝功能,它將測試包名字、測試包初始化函數、清理函數和其關聯的測試用例封裝起來。

CU_SuiteInfo suites[] = {
{ "suitename1", suite1_init-func, suite1_cleanup_func, test_array1 },
{ "suitename2", suite2_init-func, suite2_cleanup_func, test_array2 },
CU_SUITE_INFO_NULL,
};

  這樣,我們將整個注冊流程簡化為:

CU_ErrorCode error = CU_register_suites(suites);

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

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