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

發表于:2015-05-07來源:uml.org.cn作者:火龍果軟件點擊數: 標簽:單元測試工具
創建一個測試包,該測試包擁有自己特定的名字、初始化函數及清理函數。該測試包被注冊到一個測試注冊簿,該注冊簿在添加任意測試包之前須初始化。

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

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

該函數返回值分為五種:

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也提供類似的封裝功能,它將測試包名字、測試包初始化函數、清理函數和其關聯的測試用例封裝起來。

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

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