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

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

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

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

    ShortCUT - 一個簡短的c++單元測試框架

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

    領測軟件測試網

    介紹
     
            這個測試框架只有125行的單個頭文件。它的目的是提供一種簡單的方式來對c++進行單元測試。因為簡單,它還能狗容易定制。一些測試框架都需要鏈接分離的庫文件或者經過多次跳轉才能工作,這就使得寫case是一件非常難得事情了。
            其中一種情況是開發人員經常碰到當他們需要寫單元測試用例的時候他們已經工作于項目上了。如果這個項目不應獨立的庫而壞掉,這就很難寫出獨立的單元測試用例。另外,一些程序的一些核心function不能簡單的被破壞成一個單獨可執行的用例。實際上,一個開發人員應該寫一些單元測試用例,在一個程序內部調用自己的function,可以簡單的使用#define。
            這看起來不像一種很好的軟件工程方法,但是,這些都是盡早測試,通常比其它方法更好,用最小的努力來寫測試,最早的完成。測試集合隨著項目前進而增長,由于時間限制測試就能集合到一個單獨的庫和可執行的東東。
     
            我開始尋找一個現成的解決方案。在互聯網上有很多xUnit的測試框架,比如Smalltalk SUnit,JUnit,NUnit,CppUnit等等

            但是很多框架都有一個共同的就是能夠讓它的屬性在一個function中run起來,或者讓其自動的跑起來。C++程序員沒有那么幸運,因為需要做很多手工的工作比如宏,模板之類的,盡管不是大的工作。
    設計
     
            在評估一些測試框架后,我決定它們都不是能夠滿足我的簡單的而且能夠使用修改的要求。我決定寫一個測試框架,寫到一個頭文件中,盡量只包含盡量少的代碼。這里列出設計原則:

     能夠在一個單獨的頭文件中(沒有模塊或庫)
     幾百行代碼
     易于修改擴展
     信息輸出
     可選宏
     不要模板
     不要動態內存分配
     用于嵌入式系統中
     用兼容與低級別的C++ compilers (沒有超炫的功能)

    使用Code
     
            建立case有三件事需要做
             一個測試用例test case 
             一個測試集合test suite 
             測試集合需要添加到runner然后被調用
    寫一個case
     
            這個例子中,我們從TestCase基類派生出我們的測試用例
            TestCase,像其他的框架的一樣,是一個結構體,能夠幫助我們避免一些公共訪問。

            測試code被加到一個測試方法中,TestSuite類含有一切能夠讓所有測試用例能夠訪問的任何數據,能夠傳遞到每個測試用例的函數。當測試失敗事件是能夠輸出有意義的輸出。

    struct TestAccountWithdrawal : TestCase
    {
        const char* name() { return "Account withdrawal test"; }
     
        void test(TestSuite* suite) 
        {
            TestAccountSuite* data = (TestAccountSuite*)suite;
     
            data->account->Deposit(10);
     
            bool succeeded = data->account->Withdraw(11);
     
            T_ASSERT(succeeded == false);
            T_ASSERT(data->account->Balance() == 10);
        }
    };


    延伸閱讀

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

    TAG: 單元 框架 ShortCUT


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