熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

名詞解釋 什麼是JUnit?[2]

2013-11-23 20:53:18  來源: Java開源技術 

  寫一個測試方法斷言期望的結果
  public void testEmptyCollection() {
  Collection collection = new ArrayList();
  assertTrue(collectionisEmpty());
  } 
  注意JUnit推薦的做法是以test作為待測試的方法的開頭這樣這些方法可以被自動找到並被測試

  寫一個suite()方法它會使用反射動態的創建一個包含所有的testXxxx方法的測試套件
  public static Test suite() {
  return new TestSuite(SimpleTestclass);
  } 

   寫一個main()方法以文本運行器的方式方便的運行測試
  public static void main(String args[]) {
  junittextuiTestRunnerrun(suite());
  }
  } 

   運行測試

  以文本方式運行
  java junitfaqSimpleTest 
 
  通過的測試結果是
  Time:
  OK ( tests) 
   Time上的小點表示測試個數如果測試通過則顯示OK否則在小點的後邊標上F表示該測試失敗
每次的測試結果都應該是OK的這樣才能說明測試是成功的如果不成功就要馬上根據提示信息進行修正了
如果JUnit報告了測試沒有成功它會區分失敗(failures)和錯誤(errors)失敗是你的代碼中的assert方法失敗引起的而錯誤則是代碼異常引起的例如ArrayIndexOutOfBoundsException

  以圖形方式運行
java junitswinguiTestRunner junitfaqSimpleTest 
 
  通過的測試結果在圖形界面的綠色條部分
  以上是最簡單的測試樣例在實際的測試中我們測試某個類的功能是常常需要執行一些共同的操作完成以後需要銷毀所占用的資源(例如網絡連接數據庫連接關閉打開的文件等)TestCase類給我們提供了setUp方法和tearDown方法setUp方法的內容在測試你編寫的TestCase子類的每個testXxxx方法之前都會運行而tearDown方法的內容在每個testXxxx方法結束以後都會執行這個既共享了初始化代碼又消除了各個測試代碼之間可能產生的相互影響

JUnit最佳實踐

  Martin Fowler說過當你試圖打印輸出一些信息或調試一個表達式時寫一些測試代碼來替代那些傳統的方法一開始你會發現你總是要創建一些新的Fixture而且測試似乎使你的編程速度慢了下來然而不久之後你會發現你重復使用相同的Fixture而且新的測試通常只涉及添加一個新的測試方法
  你可能會寫許多測試代碼但你很快就會發現你設想出的測試只有一小部分是真正有用的你所需要的測試是那些會失敗的測試即那些你認為不會失敗的測試或你認為應該失敗卻成功的測試
  我們前面提到過測試是一個不會中斷的過程一旦你有了一個測試你就要一直確保其正常工作以檢驗你所加入的新的工作代碼不要每隔幾天或最後才運行測試每天你都應該運行一下測試代碼這種投資很小但可以確保你得到可以信賴的工作代碼你的返工率降低了你會有更多的時間編寫工作代碼

[]  []  []  


From:http://tw.wingwit.com/Article/program/Java/ky/201311/29245.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.