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

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

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

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

    C++的單元測試

    發布: 2010-7-06 09:05 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 86次 | 進入軟件測試論壇討論

    領測軟件測試網

      三、CppUnit開發環境設置

      認識了CppUnit的測試環境,想必你已經是在磨拳擦掌,準備在你的開發過程中感受一下測試驅動開發的感覺了。不過,在使用CppUnit前,還需要設置一下你的開發環境。

      1、CppUnit的lib和dll

      CppUnit為我們提供了兩套框架庫,一個為靜態的lib,一個為動態的dll。

      cppunit project:靜態lib

      cppunit_dll project:動態dll和lib

      在開發中我們可以根據實際情況作出選擇。進入src文件夾,打開CppUnitLibraries.dsw。分別編譯這兩個project,輸出位置均為lib文件夾。

      另外一個需要關注的project是TestRunner,它輸出一個dll,提供了一個基于GUI 方式的測試環境,即前面我們提到的兩種測試環境之一。我們也需要編譯這個project,輸出位置亦為lib文件夾。

      為了方便開發,我們把這些編譯出來的lib和dll(包括Debug版和Release版) copy 到我們自己建立的一個文件夾中(當然你也可以不這么做),例如F:\cppunit1.9.0\lib\,同時我們也把CppUnit源代碼中include文件夾copy到我們自己的include文件夾下。然后在VC的tools/options/directories/include files和library files中設置include路徑和lib路徑。最后別忘了在你的project中link正確的lib。

      2、在你的VC project中打開RTTI開關。

      具體位置Project Settings/C++/C++ Language。

      3、為TestRunner.dll設置環境變量

      TestRunner.dll為我們提供了基于GUI的測試環境。為了讓我們的測試程序能正確的調用它,TestRunner.dll必須位于你的測試程序的路徑下。但最簡單的方法是在操作系統的環境變量Path中添TestRunner.dll的路徑,這樣是最省事的。

      四、你的第一個TDD example

      一切準備就緒,現在我們可以來看看怎樣添加測試代碼了。前面我們提到過,CppUnit最小的測試單位是TestCase,多個相關TestCase組成一個TestSuite。要添加測試代碼最簡單的方法就是利用CppUnit為我們提供的幾個宏來進行(當然還有其他的手工加入方法,但均是殊途同歸,大家可以查閱CppUnit頭文件中的演示代碼)。這幾個宏是:

      CPPUNIT_TEST_SUITE() 開始創建一個TestSuite

      CPPUNIT_TEST() 添加TestCase

      CPPUNIT_TEST_SUITE_END() 結束創建TestSuite

      CPPUNIT_TEST_SUITE_NAMED_REGISTRATION() 添加一個TestSuite到一個指定的TestFactoryRegistry工廠

      感興趣的朋友可以在HelperMacros.h看看這幾個宏的聲明,本文在此不做詳述。

      1、一個實現兩個整數相加的類

      假定我們要實現一個類,類名暫且取做CPlus,它的功能主要是實現兩個數相加(多簡單的一個類啊,這也要測試嗎?不要緊,我們只是了解怎樣加入測試代碼來測試它就行了,所以越簡單越好)。 假定這個類要實現的相加的方法是:

      int Add(int nNum1, int nNum2);

      Ok,那我們先來寫測試這個方法的代碼吧。TDD 可是先寫測試代碼,后寫產品代碼(CPlus)的哦!先寫的測試代碼往往是不能運行或編譯的,我們的目標是在寫好測試代碼后寫產品代碼,使之編譯通過,然后再進行重構。這就是Kent Beck說的“red/green/refactor”( 還記得基于GUI的測試環境的狀態條嗎?)。所以,上面的類名和方法應該還只是在你的心里,還只是你的idea而已。

      2、在VC中為測試代碼建立一個 Project

      通常,測試代碼和被測試對象是處于不同的Project中的。這樣就不會讓你的產品代碼被測試代碼所“污染 ”。

      在本例中,我們將建立一個基于GUI 方式的測試環境。在VC中,我們建立一個基于對話框的Project。別忘了link正確的lib,本例中我們使用靜態的CppUnit lib。由于我們希望這個Project運行后顯示的是圖2這樣的界面,所以我們需要在App的 Instance()中屏蔽掉原有的對話框,代之以CppUnit的GUI。

    延伸閱讀

    文章來源于領測軟件測試網 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>