读书人

Java单元测试技术(十)

发布时间: 2012-11-05 09:35:12 作者: rapoo

Java单元测试技术(10)
?类Assert
类Assert是TestCase的基类,其中定义了可供TestCase使用的大量静态方法,用于实际返回值与预期值的比较,这些方法名都是以assert开头,在我们自己写的测试方法中可以使用这些方法用于测试结果的验证。要注意的是JUnit对测试失败(实际值与预期值不符)是以抛出AssertionFailedError异常的形式体现的。我们看一个assert方法的典型实现:
static public void assertTrue(String message, boolean condition) {
if (!condition)
fail(message);
}
static public void fail(String message) {
throw new AssertionFailedError(message);
}
一旦验证逻辑验证失败,该用例就会抛出AssertionFailedError异常,TestResult记录下测试失败的该用例对象引用以及它所抛出的异常,这两者的对应关系是TestFailure类体现的,它用于维护用例对象与异常(注意异常的引用类型是所有异常的基类Throwable)的对应关系。TestResult有一个Vector类型成员变量fFailures,它的元素就是TestFailure对象。
用例执行中除了可能会捕获到AssertionFailedError异常,被测代码有可能会抛出其它异常,包括RuntimeException运行期异常、JAVA虚拟机抛出的Error异常,抛出了这样的异常,也意味着用例执行失败,为此TestResult还有另一个Vector类型成员变量fErrors,它的元素也是TestFailure对象,不过它维护的是用例对象与非AssertionFailedError异常的对应关系。
在用例执行结果中分别显示出因抛出AssertionFailedError异常而失败的用例个数(故障,Failure),以及因抛出非AssertionFailedError异常而失败的用例个数(错误,Error)。
以下是在Eclipse中的的执行结果图示:

读书人网 >编程

热点推荐