<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Codooba
    JCenter
    posts - 20,comments - 9,trackbacks - 0
    一、簡介

      JUnit是一個開源的Java單元測試框架。在1997年,由 Erich Gamma 和 Kent Beck 開發完成。這兩個牛人中 Erich Gamma 是 GOF 之一;Kent Beck 則在 XP 中有重要的貢獻(你覺得眼熟一點都不奇怪)。
    正如常言道:“麻雀雖小,五臟俱全。” JUnit設計的非常小巧,但是功能卻非常強大。
      下面是JUnit一些特性的總結:
      1) 提供的API可以讓你寫出測試結果明確的可重用單元測試用例
      2) 提供了三種方式來顯示你的測試結果,而且還可以擴展
      3) 提供了單元測試用例成批運行的功能
      4) 超輕量級而且使用簡單,沒有商業性的欺騙和無用的向導
      5) 整個框架設計良好,易擴展
      對不同性質的被測對象,如Class,jsp,Servlet,Ejb等,Junit有不同的使用技巧。由于本文的性質,以下僅以Class測試為例。

      二、下載

      點擊http://www.junit.org可以下載到最新版本的JUnit,本文使用的為3.8.1版。至于安裝或者配置之類,你只需要輕松的將下載下來的壓縮包中的jar文件,放到你工程的classpath中就可以了。
      這樣,你的系統中就可以使用JUnit編寫單元測試代碼了(是不是很簡單)!

      三、HelloWorld

      記得在幾乎每本語言教學書上都能找到HelloWorld這個入門代碼。今天在這里,我們也從一個簡單到根本不用單元測試的例子入手。這是一個只會做兩數加減的超級簡單的計算器(小學一年級必備極品)。代碼如下:

      public class SampleCalculator
      {
       public int add(int augend , int addend)
       {
       return augend + addend ;
       }

       public int suBTration(int minuend , int subtrahend)

       {

       return minuend - subtrahend ;

       }

      }

      將上面的代碼編譯通過。下面就是我為上面程序寫的一個單元測試用例:

      //請注意這個程序里面類名和方法名的特征
      import junit.framework.TestCase;
      public class TestSample extends TestCase

      {

       public void testAdd()

       {

      SampleCalculator calculator = new SampleCalculator();

       int result = calculator.add(50 , 20);

       assertEquals(70 , result);

       }

       public void testSubtration()

       {

       SampleCalculator calculator = new SampleCalculator();

       int result = calculator.subtration(50 , 20);

       assertEquals(30 , result);

       }

      }

      好了,在DOS命令行里面輸入javac TestSample.java 將測試類編譯通過。然后再輸入 java junit.swingui.TestRunner TestSample 運行測試類,你會看到如下的窗口。
            綠色說明單元測試通過,沒有錯誤產生;如果是紅色的,則就是說測試失敗了。這樣一個簡單的單元測試就完成了.

      按照框架規定:編寫的所有測試類,必須繼承自junit.framework.TestCase類;里面的測試方法,命名應該以Test開頭,必須是public void 而且不能有參數;而且為了測試查錯方便,盡量一個TestXXX方法對一個功能單一的方法進行測試;使用assertEquals等junit.framework.TestCase中的斷言方法來判斷測試結果正確與否。

      你可以對比著上面測試類中的實現來體會下規定——很簡單!而且你在這個測試類中有加入多少個測試方法,就會運行多少個測試方法。

      四、向前一步

      學完了HelloWorld,你已經可以編寫標準的單元測試用例了。但是還有一些細節,這里還要說明一下。不要急,很快的!
      另外你是否注意到,上面彈出窗口的一個細節,在綠條下面有Errors、Failures統計。這兩者有何區別呢?
      Failures作為單元測試所期望發生的錯誤,它預示你的代碼有bug,不過也可能是你的單元測試代碼有邏輯錯誤(注意是邏輯錯誤)。Errors不是你所期待的,發生了Error你可以按照下面的順序來檢查:

      檢查測試所需的環境,如:數據庫連接

      檢查單元測試代碼

      檢查你的系統代碼

      五、成批運行test case

      這是前面提到的JUnit特性之一。它方便于系統單元測試的成批運行。使用起來也是非常簡單,先看下使用代碼:

      import junit.framework.Test;

      import junit.framework.TestSuite;

      public class TestAll{

       public static Test suite(){

       TestSuite suite = new TestSuite("TestSuite Test");

       suite.addTestSuite( TestSample.class);

       return suite;

       }

      }

      這個測試程序的編譯、運行,和上面TestSample的方式是一樣的。

      javac TestAll.java

      java junit.swingui.TestRunner TestAll

      怎么樣?這樣你在suite方法里面添加幾個TestCase就會運行幾個,而且它也可以添加TestSuite來將小一點的集合加入大的集合中來,方便了對于不斷增加的TestCase的管理和維護。

      你覺得suite方法的作用是不是于java應用程序的main很類似?并且這里的suite必須嚴格遵守上面的寫法!
    posted on 2007-10-04 01:22 Zhangwenlong 閱讀(243) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 69国产精品视频免费| aa级女人大片喷水视频免费| 91精品国产免费入口| 亚洲精品无码永久中文字幕| 免费又黄又爽又猛大片午夜| 亚洲国产精品自在拍在线播放 | 国产国拍精品亚洲AV片| 国产日韩久久免费影院| 亚洲精品乱码久久久久66| 在线免费播放一级毛片| 亚洲一二成人精品区| 18以下岁毛片在免费播放| 亚洲图片校园春色| AV免费网址在线观看| 久久久久久亚洲精品无码| 四虎永久免费地址在线网站| 一级白嫩美女毛片免费| 亚洲va久久久噜噜噜久久天堂| 无码免费一区二区三区免费播放| 亚洲美女免费视频| 全免费a级毛片免费看无码| 男人j进女人p免费视频| 久久九九亚洲精品| 成人性生交大片免费看无遮挡 | 亚洲国产成人高清在线观看| 毛片免费全部播放无码| 亚洲日韩精品无码AV海量| 亚洲人成网站18禁止一区| 国产精品免费高清在线观看| 最新亚洲卡一卡二卡三新区| 国产一精品一aⅴ一免费| 免费无码又爽又刺激高潮软件| 亚洲导航深夜福利| 亚洲一区无码精品色| 91短视频免费在线观看| 国产亚洲精品美女2020久久| 久久综合日韩亚洲精品色| 精品久久洲久久久久护士免费| 91在线视频免费观看| 亚洲国产精品成人综合色在线| 亚洲国产精品福利片在线观看|