• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 單元測試工具 CUnit 簡介(3)

    發表于:2015-01-09來源:uml.org.cn作者:不詳點擊數: 標簽:單元測試工具
    該函數返回值分為五種: 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

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>