有了TestSuite我們就可以運行這些測試了,JUnit提供了三種界面來運行測試
[Text UI] junit.textui.TestRunner
[AWT UI] junit.awtui.TestRunner
[Swing UI] junit.swingui.TestRunner
我們前面已經看過文本界面了,下面讓我們來看一看圖形界面:
界面很簡單,鍵入類名-testCar;蛟趩覷I的時候鍵入類名:
[Windows] d:>java junit.swingui.TestRunner testCar
[Unix] % java junit.swingui.TestRunner testCar
從圖形UI可以更好的運行測試可查單測試結果。還有一個問題需要注意:如果JUnit報告了測試沒有成功,JUnit會區分失敗(failures)和錯誤(errors)。失敗是一個期望的被assert方法檢查到的結果。而錯誤則是意外的問題引起的,如ArrayIndexOutOfBoundsException。
由于TestRunner十分簡單,界面也比較直觀,故不多介紹。朋友們可自行參考相關資料。
JUnit最佳實踐
Martin Fowler(又是這位高人)說過:“當你試圖打印輸出一些信息或調試一個表達式時,寫一些測試代碼來替代那些傳統的方法!币婚_始,你會發現你總是要創建一些新的Fixture,而且測試似乎使你的編程速度慢了下來。然而不久之后,你會發現你重復使用相同的Fixture,而且新的測試通常只涉及添加一個新的測試方法。
你可能會寫許多測試代碼,但你很快就會發現你設想出的測試只有一小部分是真正有用的。你所需要的測試是那些會失敗的測試,即那些你認為不會失敗的測試,或你認為應該失敗卻成功的測試。
我們前面提到過測試是一個不會中斷的過程。一旦你有了一個測試,你就要一直確保其正常工作,以檢驗你所加入的新的工作代碼。不要每隔幾天或最后才運行測試,每天你都應該運行一下測試代碼。這種投資很小,但可以確保你得到可以信賴的工作代碼。你的返工率降低了,你會有更多的時間編寫工作代碼。
不要認為壓力大,就不寫測試代碼。相反編寫測試代碼會使你的壓力逐漸減輕,應為通過編寫測試代碼,你對類的行為有了確切的認識。你會更快地編寫出有效率地工作代碼。下面是一些具體的編寫測試代碼的技巧或較好的實踐方法:
1. 不要用TestCase的構造函數初始化Fixture,而要用setUp()和tearDown()方法。
2. 不要依賴或假定測試運行的順序,因為JUnit利用Vector保存測試方法。所以不同的平臺會按不同的順序從Vector中取出測試方法。
文章來源于領測軟件測試網 http://www.kjueaiud.com/