posts - 22, comments - 17, trackbacks - 0, articles - 15
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Junit

          Posted on 2006-12-02 16:23 碼農cz 閱讀(227) 評論(0)  編輯  收藏 所屬分類: OtherJava

          JUnit是一個OpenSource的軟件。
          下載junit.jar。將這個jar文件加入你的CLASSPATH系統變量(獲IDE CLASSPATH路徑)就OK了。
          編寫測試類的基本步驟:
          1> 擴展TestCase類;
          2> 覆蓋runTest()方法(可選);
          3> 寫一些testXXXXX()方法;
          如果你要對一個或若干個的類執行多個測試,該怎么辦?JUnit對此有特殊的解決辦法。
          如果需要在一個或若干個的類執行多個測試,這些類就成為了測試的context。
          在JUnit中被稱為Fixture。

          protected void setUp() throws java.lang.Exception
          覆蓋setUp()方法,初始化所有測試的Fixture
          protected void tearDown() throws java.lang.Exception
          覆蓋tearDown() 釋放你在setUp()中分配的永久性資源,
          當JUnit執行測試時,它在執行每個testXXXXX()方法前都調用setUp(),而在執行每個testXXXXX()方法后都調用tearDown()方法,由此保證了測試不會相互影響。

          JUnit提供了三種界面來運行測試
          [Text UI] junit.textui.TestRunner
          [AWT UI] junit.awtui.TestRunner
          [Swing UI] junit.swingui.TestRunner

          界面很簡單,鍵入類名-testClass。或在啟動UI的時候鍵入類名:
          c:>java junit.swingui.TestRunner testClass

          下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:?

          1. 不要用TestCase的構造函數初始化Fixture,而要用setUp()和tearDown()方法。?

          2. 不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。?

          3. 避免編寫有副作用的TestCase。例如:如果隨后的測試依賴于某些特定的交易數據,就不要提交交易數據。簡單的會滾就可以了。?

          4. 當繼承一個測試類時,記得調用父類的setUp()和tearDown()方法。?

          5. 將測試代碼和工作代碼放在一起,一邊同步編譯和更新。(使用Ant中有支持junit的task.)?

          6. 測試類和測試方法應該有一致的命名方案。如在工作類名前加上test從而形成測試類名。?

          7. 確保測試與時間無關,不要依賴使用過期的數據進行測試。導致在隨后的維護過程中很難重現測試。?

          8. 如果你編寫的軟件面向國際市場,編寫測試時要考慮國際化的因素。不要僅用母語的Locale進行測試。?

          9. 盡可能地利用JUnit提供地assert/fail方法以及異常處理的方法,可以使代碼更為簡潔。
          ?
          10.測試要盡可能地小,執行速度快。
          ---------------------------------------------------
          ??? JUnit是單元測試工具,我的理解是用來測試單個模塊功能的工具,非常適合測試比較獨立的模塊。
          ??? 測試的用途是用來檢查錯誤,我認為這個工具并不只是幫助編程時查錯。對于傳統的編程方式,一般都設計好了各個模塊,通常模塊測試一次就可以了,但是目前設計總是因為功能不斷的增加和修改而改變,如果多次這樣,程序的質量和bug修正將是一個繁重困難的工作。JUnit在這種情況下,可以大大的提高工作效率,只要在第一次寫代碼的時候額外編寫測試代碼,以后所有的修改都可以實現自動的測試。
          ??? 同時因為自動測試的實現,XP編程方法才有了實現的可能。通過先寫好測試代碼,另一個角度看也就是我們要實現的功能,然后寫一個最簡單的使測試通過的代碼,再進行一個循環:改進-測試-通過-改進,直到代碼滿意,即使不太滿意但寫出的代碼也是可運行的。


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


          網站導航:
           
          主站蜘蛛池模板: 西贡区| 奉新县| 台南县| 收藏| 商都县| 乐东| 德江县| 中西区| 晋江市| 乐山市| 日土县| 葵青区| 林西县| 巴东县| 东源县| 金阳县| 和平县| 通许县| 全南县| 东山县| 肥乡县| 大埔区| 金川县| 尤溪县| 黄大仙区| 尼木县| 来凤县| 城市| 济南市| 平凉市| 东海县| 尼木县| 涞水县| 布拖县| 泊头市| 邳州市| 民县| 高州市| 姚安县| 恭城| 视频|