Package framework
Class & Interface Hierachy
Interface Test
主要方法
countTestCases:统计TestCases 数目
run:运行测试并将结果返回到指定的TestResult 中
Class Assert
首先,Assert 提供的public 方法都可以带或不带自己定义的提示,其次Assert
中的Assert 方法是protected 的,这意外着Assert 是一个静态类,它提供的方法都是Static 的。
public 方法:
assert:保留(deprecated)方法,判断一个条件是否为真
assertTrue:assert 的替代方法,判断一个条件是否为真
assertEquals:用于判断实际值和期望值是否相同(Equals),可以是各种JAVA
对象。
assertNotNull:判断一个对象是否不为空
assertNull:判断一个对象是否为空
assertSame:判断实际值和期望值是否为同一个对象( ==),注意和assertEquals
区分
fail:直接返回失败,抛出AssertionFailedError
private 方法:
failNotEquals:主要用于assertEquals 方法,调用fail 返回失败提示
failNotSame:主要用于assertSame 方法,调用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 的祖先。通过这种定义可以保证运行的时候如果出现任何Error 和Exception,都将被抛出而不会导致程序不能继续运行。
Portectable 的接口没有被framework 包中的任何类实现,它的使用在类
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,实现了Interface Portectable
Interface TestListener
TestListener 的用途和它名称一样,用于监听。主要用于运行时刻监听,BaseRunner(所有运行类,如TestRunner)实现了这一接口。由于运行是通过TestResult 来实现,只要调用 TestResult.addListener 可以增加监听,TestResult会调用接口中相应的方法,具体见TestResult。
主要方法:
public
addError:增加错误,注意这里错误应该指测试程序本身的错误或者被测试程
序错误,而不是测试失败
addFailure:增加一个测试失败,专用于AssertionFailedError 的处理
endTest:结束测试
startTest:开始测试
Class TestCase
使用者主要使用的类,继承Class Assert,实现Interface Test。主要方法