• <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 簡介(2)

    發表于:2015-04-22來源:uml.org.cn作者:火龍果軟件點擊數: 標簽:CUnit
    所有的斷言被定義在 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

    老湿亚洲永久精品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>