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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    CppUnit 快速使用指南

    發布: 2009-4-03 10:02 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 132次 | 進入軟件測試論壇討論

    領測軟件測試網

       對 fixture 的多個測試用例,通常(1)(4)部分代碼都是相似的,CppUnit 在很多地方引入了 setUp 和 tearDown 虛函數?梢栽 setUp 函數里完成(1)初始化代碼,而在 tearDown 函數中完成(4)代碼。具體測試用例函數中只需要完成(2)(3)部分代碼即可,運行時 CppUnit 會自動為每個測試用例函數運行 setUp,之后運行 tearDown,這樣測試用例之間就沒有交叉影響。

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

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

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    22/2<12

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

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