正如您看到的,清單 1 中的 Hierarchy 類具有一個 baseClass 實例以及它的父類的集合。清單 2 中的 HierarchyBuilder 通過兩個復制 buildHierarchy 的重載的 static 方法創建了 Hierarchy 類。
清單 2. 類層次生成器
package com.vanward.adana.hierarchy;
public class HierarchyBuilder {
private HierarchyBuilder() {
super();
}
public static Hierarchy buildHierarchy(final String clzzName)
throws ClassNotFoundException{
final Class clzz = Class.forName(clzzName, false,
HierarchyBuilder.class.getClassLoader());
return buildHierarchy(clzz);
}
public static Hierarchy buildHierarchy(Class clzz){
if(clzz == null){
throw new RuntimeException("Class parameter can not be null");
}
final Hierarchy hier = new Hierarchy();
hier.setBaseClass(clzz);
final Class superclass = clzz.getSuperclass();
if(superclass !=
null && superclass.getName().equals("java.lang.Object")){
return hier;
}else{
while((clzz.getSuperclass() != null) &&
(!clzz.getSuperclass().getName().equals("java.lang.Object"))){
clzz = clzz.getSuperclass();
hier.addClass(clzz);
}
return hier;
}
}
}
現在是測試時間!
有關測試覆蓋的文章怎么能缺少測試案例呢?在清單 3 中,我定義了一個簡單的有三個測試案例的 JUnit 測試類,它將試圖執行 Hierarchy 類和 HierarchyBuilder 類:
文章來源于領測軟件測試網 http://www.kjueaiud.com/