亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > cppUnit
便利的開發工具CppUnit快速使用指南
作者:網絡轉載 發布時間:[ 2013/7/16 10:31:18 ] 推薦標簽:

對 fixture 的所有測試用例可以被封裝在一個 CppUnit::TestFixture 的子類(命名慣例是[ClassName]Test)中。然后定義這個fixture 的 setUp 和 tearDown 函數,為每個測試用例定義一個測試函數(命名慣例是 testXXX)。下面是個簡單的例子:

    class MathTest : public CppUnit::TestFixture { 
     protected: 
       int m_value1, m_value2; 
     public: 
       MathTest() {} 
        // 初始化函數 
       void setUp () { 
         m_value1 = 2; 
         m_value2 = 3; 
       } 
       // 測試加法的測試函數 
       void testAdd () { 
            // 步驟(2),對 fixture 進行操作 
         int result = m_value1 + m_value2; 
            // 步驟(3),驗證結果是否爭取 
         CPPUNIT_ASSERT( result == 5 ); 
       } 
       // 沒有什么清理工作沒有定義 tearDown.  
     } 

在測試函數中對執行結果的驗證成功或者失敗直接反應這個測試用例的成功和失敗。CppUnit 提供了多種驗證成功失敗的方式:

    CPPUNIT_ASSERT(condition)                   // 確信condition為真 
    CPPUNIT_ASSERT_MESSAGE(message, condition)  // 當condition為假時失敗, 并打印message 
    CPPUNIT_FAIL(message)                       // 當前測試失敗, 并打印message 
    CPPUNIT_ASSERT_EQUAL(expected, actual)      // 確信兩者相等 
    CPPUNIT_ASSERT_EQUAL_MESSAGE(message, expected, actual) // 失敗的同時打印message 
    CPPUNIT_ASSERT_DOUBLES_EQUAL(expected, actual, delta)   // 當expected和actual之間差大于delta時失敗 

要把對 fixture 的一個測試函數轉變成一個測試用例,需要生成一個 CppUnit::TestCaller 對象。而終運行整個應用程序的測試代碼的時候,可能需要同時運行對一個 fixture 的多個測試函數,甚至多個 fixture 的測試用例。CppUnit 中把這種同時運行的測試案例的集合稱為 TestSuite。而 TestRunner 則運行測試用例或者 TestSuite,具體管理所有測試用例的生命周期。目前提供了 3 類TestRunner,包括:

    CppUnit::TextUi::TestRunner     // 文本方式的TestRunner 
    CppUnit::QtUi::TestRunner       // QT方式的TestRunner 
    CppUnit::MfcUi::TestRunner      // MFC方式的TestRunner 

下面是個文本方式 TestRunner 的例子:

    CppUnit::TextUi::TestRunner runner; 
    CppUnit::TestSuite *suite= new CppUnit::TestSuite(); 
     
    // 添加一個測試用例 
    suite->addTest(new CppUnit::TestCaller<MathTest> ( 
                  "testAdd", testAdd)); 
     
    // 指定運行TestSuite  
    runner.addTest( suite ); 
    // 開始運行, 自動顯示測試進度和測試結果 
    runner.run( "", true );    // Run all tests and wait 

對測試結果的管理、顯示等功能涉及到另一類對象,主要用于內部對測試結果、進度的管理,以及進度和結果的顯示。這里不做介紹。

下面我們整理一下思路,結合一個簡單的例子,把上面說的思路串在一起。

3. 手動使用步驟

首先要明確測試的對象 fixture,然后根據其功能、流程,以及以前的經驗,確定測試用例。這個步驟非常重要,直接關系到測試的終效果。當然增加測試用例的過程是個階段性的工作,開始完成代碼后,先完成對功能的測試用例,保證其完成功能;然后對可能出錯的部分,結合以前的經驗(比如邊界值測試、路徑覆蓋測試等)編寫測試用例;后在發現相關 bug 時,根據 bug 完成測試用例。

比如對整數加法進行測試,首先定義一個新的 TestFixture 子類,MathTest,編寫測試用例的測試代碼。后期需要添加新的測試用例時只需要添加新的測試函數,根據需要修改 setUp 和 tearDown 即可。如果需要對新的 fixture 進行測試,定義新的 TestFixture 子類即可。注:下面代碼僅用來表示原理,不能編譯。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 欧美成人黄色 | 黄网站免费在线 | 亚洲国产精品久久网午夜 | hd中国xxxx| 欧美日韩综合高清一区二区 | 激情综合网五月 | 天天干天天操天天操 | 又黄又爽又色又刺激的视频 | 羞羞视频免费观 | 色免费视频 | 国产成人综合久久 | 最近中文字幕大全免费版在线 | 一级做性色a爱片久久片 | 亚洲美女操 | 久久精品国产亚洲 | 国产视频观看 | 中文字幕1区 | 亚洲视频精品在线观看 | 天天夜天天干 | 欧美一级片在线观看 | 成人动漫在线免费观看 | 天天干天天上 | yy4138殇情理论片一级毛片 | 国产免费黄色大片 | 欧美亚洲性色影视在线 | 不卡一级aaa全黄毛片 | 日日插人人插天天插 | 国产日韩欧美成人 | 污污短视频 | 999久久免费高清热精品 | 男人女人的免费视频网站 | 欧美日韩精选 | 国产一区二区在线观看麻豆 | 色热热| 最新一本大道香蕉综合 | 韩国理伦片最新免费观看 | 免费99精品国产自在现线观看 | 日韩精品中文字幕一区二区三区 | 中文字幕一区二区三区在线观看 | 色欧美亚洲 | 亚洲欧美日韩精品 |