JUnit和單元測試入門簡介[3] 單元測試方法
其中assertEquals(Object expcted,Object actual)內部邏輯判斷使用equals()方法,這表明斷言兩個實例的內部哈希值是否相等時,最好使用該方法對相應類實例的值進行比較。而assertSame(Object expected,Object actual)內部邏輯判斷使用了Java運算符“==”,這表明該斷言判斷兩個實例是否來自于同一個引用(Reference),最好使用該方法對不同類的實例的值進行比對。asserEquals(String message,String expected,String actual)該方法對兩個字符串進行邏輯比對,如果不匹配則顯示著兩個字符串有差異的地方。ComparisonFailure類提供兩個字符串的比對,不匹配則給出詳細的差異字符。
TestSuite測試包類——多個測試的組合
TestSuite類負責組裝多個Test Cases。待測得類中可能包括了對被測類的多個測試,而TestSuit負責收集這些測試,使我們可以在一個測試中,完成全部的對被測類的多個測試。
TestSuite類實現了Test接口,且可以包含其它的TestSuites。它可以處理加入Test時的所有拋出的異常。
TestSuite處理測試用例有6個規約(否則會被拒絕執行測試)
A 測試用例必須是公有類(Public)
B 測試用例必須繼承與TestCase類
C 測試用例的測試方法必須是公有的( Public )
D 測試用例的測試方法必須被聲明為Void
E 測試用例中測試方法的前置名詞必須是test
F 測試用例中測試方法誤任何傳遞參數
TestResult結果類和其它類與接口
TestResult結果類集合了任意測試累加結果,通過TestResult實例傳遞個每個測試的Run()方法。TestResult在執行TestCase是如果失敗會異常拋出
TestListener接口是個事件監聽規約,可供TestRunner類使用。它通知listener的對象相關事件,方法包括測試開始startTest(Test test),測試結束endTest(Test test),錯誤,增加異常addError(Test test,Throwable t)和增加失敗addFailure(Test test,AssertionFailedError t)
TestFailure失敗類是個“失敗”狀況的收集類,解釋每次測試執行過程中出現的異常情況。其toString()方法返回“失敗”狀況的簡要描述
3.6、JUnit一個實例
在控制臺中簡單的范例如下:
1、寫個待測試的Triangle類,創建一個TestCase的子類ExampleTest:
2、 ExampleTest中寫一個或多個測試方法,斷言期望的結果(注意:以test作為待測試的方法的開頭,這樣這些方法可以被自動找到并被測試)
3、 ExampleTest中寫一個suite()方法,它會使用反射動態的創建一個包含所有的testXxxx方法的測試套件:
Junit本身的操作并沒有什么特別的地方。這里提供了6種測試項目,分別針對不同的測試對象或者可以說是目標。
test case:這個是最常用的,也就是對程序代碼中類的測試。軟件測試
test suite:這個更高一級,可以一次行測試多個類。其效果與分別 進行多個testcase是相同的。
jdbc fixture:這個是針對數據庫鏈接的測試。(很少用,不大懂。)我學的是默認的jdbc的數據庫。
jndi fixture:這個相當于是一個容器測試。如果說主要的內容就是測試那些存放鏈接的fixture。
在編程的時候,經常把一些常用的鏈接放在一個類似于容器的東東里面,這樣,如果調用重復調用鏈接的話,可以同一調用容器地址,再具體指向里面的鏈接。這是否是一種管理呢。
原文轉自:http://www.anti-gravitydesign.com