Package framework
Class & Interface Hierachy
Interface Test
主要方法
countTestCases:統(tǒng)計TestCases 數(shù)目
run:運行測試并將結(jié)果返回到指定的TestResult 中
Class Assert
首先,Assert 提供的public 方法都可以帶或不帶自己定義的提示,其次Assert
中的Assert 方法是protected 的,這意外著Assert 是一個靜態(tài)類,它提供的方法都是Static 的。
public 方法:
assert:保留(deprecated)方法,判斷一個條件是否為真
assertTrue:assert 的替代方法,判斷一個條件是否為真
assertEquals:用于判斷實際值和期望值是否相同(Equals),可以是各種JAVA
對象。
assertNotNull:判斷一個對象是否不為空
assertNull:判斷一個對象是否為空
assertSame:判斷實際值和期望值是否為同一個對象( ==),注意和assertEquals
區(qū)分
fail:直接返回失敗,拋出AssertionFailedError
private 方法:
failNotEquals:主要用于assertEquals 方法,調(diào)用fail 返回失敗提示
failNotSame:主要用于assertSame 方法,調(diào)用fail 返回失敗提示
Class AssertionFailedError
AssertionFailedError 是從Jdk 提供Error 類簡單繼承而來,主要方法如下:
public AssertionFailedError (String message) {
super (message);
}
Class Assert 中比較失敗都是拋出AssertionFailedError。
Interface Protectable
這個接口是使用了一種比較少見的用法。
在Interface 本身只定義了一個方法
public abstract void protect() throws Throwable;注意方法throws 的是所有Error 和Exception 的祖先。通過這種定義可以保證運行的時候如果出現(xiàn)任何Error 和Exception,都將被拋出而不會導致程序不能繼續(xù)運行。
Portectable 的接口沒有被framework 包中的任何類實現(xiàn),它的使用在類
TestResult 中的run 方法中。以下是run 方法中代碼:
protected void run(final TestCase test) {
startTest(test);
Protectable p= new Protectable() {
public void protect() throws Throwable {
test.runBare();
}
};
runProtected(test, p);
endTest(test);
}
這里實際是聲明了一個Anonymous Classes,實現(xiàn)了Interface Portectable
Interface TestListener
TestListener 的用途和它名稱一樣,用于監(jiān)聽。主要用于運行時刻監(jiān)聽,BaseRunner(所有運行類,如TestRunner)實現(xiàn)了這一接口。由于運行是通過TestResult 來實現(xiàn),只要調(diào)用 TestResult.addListener 可以增加監(jiān)聽,TestResult會調(diào)用接口中相應的方法,具體見TestResult。
主要方法:
public
addError:增加錯誤,注意這里錯誤應該指測試程序本身的錯誤或者被測試程
序錯誤,而不是測試失敗
addFailure:增加一個測試失敗,專用于AssertionFailedError 的處理
endTest:結(jié)束測試
startTest:開始測試
Class TestCase
使用者主要使用的類,繼承Class Assert,實現(xiàn)Interface Test。主要方法