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

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

  • <strong id="5koa6"></strong>
  • 單元測試作業指導系列講座之一

    發表于:2007-06-18來源:作者:點擊數: 標簽:
    下一頁 1 2 這是我以前任項目經理時,編寫的關于 單元測試 方面的作業指導書,針對多種 開發 環境敘述怎么進行單元測試以及環境配置,現在整理了一下。應該對大家有所幫助。 這是第一部分,主要針對C和C++項目的(包括了 Windows 環境和 Linux 環境),下部分

    下一頁 1 2 

       
      這是我以前任項目經理時,編寫的關于單元測試方面的作業指導書,針對多種開發環境敘述怎么進行單元測試以及環境配置,現在整理了一下。應該對大家有所幫助。

      這是第一部分,主要針對C和C++項目的(包括了Windows環境和Linux環境),下部分將針對Java及J2EE項目。

      1. 目的

      為了減少代碼中的錯誤數量, 減少調試所花的時間和精力, 改善軟件質量, 減少開發和維護的時間和成本。

      2. 適用范圍

      適用于C及C++的所有產品。

      3. 適用內容

      3.1 C++標準

      3.1.1測試環境使用Visual C++,Windows窗口應用程序

      3.1.1.1前題:使用CppUnit1.6.2版,解壓后,路徑為x:\\cppunit-1.6.2;

      在工程文件中配置測試框架使用環境:加入執行頭文件的路徑x:\\cppunit-1.6.2\include,加入導入庫文件的路徑x:\\cppunit-1.6.2\lib;

      配置DEBUG(測試)版環境:

      加入需要鏈接的靜態測試框模塊testrunnercd.lib(運行測試用例的選擇對話框)和cppunitcd.lib(測試框架);

      加入測試Add-ins,庫名為x:\\cppunit-1.6.2\lib\TestRunnerDSPlugInD.dll;

      在Project Settings/C++/C++ Language中啟用RTTI;

      3.1.1.2建立測試用例:

      1、以類名加前輟“Test”命名測試單元文件名,比如“CMabString”類的類文件名為MabString.cpp,則測試單元文件命名為TestMabString.cpp;

      2、加入測試框架頭文件以及要測試的單元頭文件,以TestMabString為例:

      頭文件:testmabstring.h

    clearcase/" target="_blank" >cc66 width="90%" align=center bgColor=#eefffe border=1>
    #ifndef CPP_UNIT_TestNode_H
    #define CPP_UNIT_TestNode_H
    //包含測試框架的頭文件
    #include <cppunit/TestCase.h>
    #include <cppunit/extensions/HelperMacros.h>
    //包含被測試單元的頭文件
    #include "mabstring.h"
    //派生測試框架的測試用例類
    class TestMabString : public CppUnit::TestCase
    {
     //定義測試用例列表,此列表將出現在運行測試用例的選擇對話框中
     CPPUNIT_TEST_SUITE( TestMabString );
     CPPUNIT_TEST( FindByName );
     CPPUNIT_TEST_SUITE_END();

     protected:
     //
     CMabString m_MabStr;
     public:
      //用例初始化,可作為樁函數
      void setUp ();
      //用例析構
      void tearDown();
     protected:
      //測試用例
      void FindByName (void);
    };

    #endif

    類文件:testmabstring.cpp

    #include "TestMabString.h"
    #include "iostream.h"
    #include "strstrea.h"

    //注冊本測試單元

    CPPUNIT_TEST_SUITE_REGISTRATION( TestMabString );

    //定義測試用例

    void TestMabString::FindByName ()
    {
     //功能性測試,屬黑盒測試
     //normal test
     //條件及錯誤測試,屬白盒測試
     //extra test,
     //例外測試,屬白盒測試
     //exception test,

     bool bRet=false;
     try{
      //put the exception code here...
     }
     //catch(CXXX& e)
     catch(...)
     {
      bRet=true;
     }
     CPPUNIT_ASSERT(bRet);
     //由于并不能夠執行所有單元測試應該執行的路徑,比如CMabString是從CString
     //類中派生出來的,而可能CMabString中的Find只簡單調用了CString中的Find方法,//所以并不需要測試;
     //在此處說明所有不用測試的路徑;
     //other test, see the ...
    }

    void TestMabString::setUp ()
    {
     //開始測試前的初始代碼
     m_pNode=new Node();
    }

    void TestMabString::tearDown()
    {
     //測試結束代碼
     if(m_pNode)
      delete m_pNode;
    }

    原文轉自:http://www.kjueaiud.com

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