Test接口——運行測試和收集測試結果
Test接口使用了Composite設計模式,是單獨測試用例 (TestCase),聚合測試模式(TestSuite)及測試擴展(TestDecorator)的共同接口。
它的public int countTestCases()方法,它來統計這次測試有多少個TestCase,另外一個方法就是public void run( TestResult ),TestResult是實例接受測試結果, run方法執行本次測試。
TestCase抽象類——定義測試中固定方法
TestCase是Test接口的抽象實現,(不能被實例化,只能被繼承)其構造函數TestCase(string name)根據輸入的測試名稱name創建一個測試實例。由于每一個TestCase在創建時都要有一個名稱,若某測試失敗了,便可識別出是哪個測試失敗。
TestCase類中包含的setUp()、tearDown()方法。setUp()方法集中初始化測試所需的所有變量和實例,并且在依次調用測試類中的每個測試方法之前再次執行setUp()方法。tearDown()方法則是在每個測試方法之后,釋放測試程序方法中引用的變量和實例。
開發人員編寫測試用例時,只需繼承TestCase,來完成run方法即可,然后JUnit獲得測試用例,執行它的run方法,把測試結果記錄在TestResult之中。
Assert靜態類——一系列斷言方法的集合
Assert包含了一組靜態的測試方法,用于期望值和實際值比對是否正確,即測試失敗,Assert類就會拋出一個AssertionFailedError異常,JUnit測試框架將這種錯誤歸入Failes并加以記錄,同時標志為未通過測試。如果該類方法中指定一個String類型的傳參則該參數將被做為AssertionFailedError異常的標識信息,告訴測試人員改異常的詳細信息。
JUnit 提供了6大類31組斷言方法,包括基礎斷言、數字斷言、字符斷言、布爾斷言、對象斷言。
其中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 測試用例中測試方法誤任何傳遞參數
n 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()方法返回“失敗”狀況的簡要描述
文章來源于領測軟件測試網 http://www.kjueaiud.com/