清單 3. 測試 HierarchyBuilder!
package test.com.vanward.adana.hierarchy;
import com.vanward.adana.hierarchy.Hierarchy;
import com.vanward.adana.hierarchy.HierarchyBuilder;
import junit.framework.TestCase;
public class HierarchyBuilderTest extends TestCase {
public void testBuildHierarchyValueNotNull() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertNotNull("object was null", hier);
}
public void testBuildHierarchyName() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertEquals("should be junit.framework.Assert",
"junit.framework.Assert",
hier.getHierarchyClassNames()[1]);
}
public void testBuildHierarchyNameAgain() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertEquals("should be junit.framework.TestCase",
"junit.framework.TestCase",
hier.getHierarchyClassNames()[0]);
}
}
因為我是一個狂熱的測試人員,我自然希望運行一些覆蓋測試。對于 Java 開發人員可用的代碼覆蓋工具中,我比較喜歡用 Cobertura,因為它的報告很友好。而且,Corbertura 是開放源碼項目,它派生出了 JCoverage 項目的前身。
Cobertura 的報告
運行 Cobertura 這樣的工具和運行您的 JUnit 測試一樣簡單,只是有一個用專門邏輯在測試時檢查代碼以報告覆蓋率的中間步驟(這都是通過工具的 Ant 任務或 Maven 的目標完成的)。
正如您在圖 1 中看到的,HierarchyBuilder 的覆蓋報告說明部分代碼沒有 被執行。事實上,Cobertura 認為 HierarchyBuilder 的行覆蓋率為 59%,分支覆蓋率為 75%。
圖 1. Cobertura 的報告
文章來源于領測軟件測試網 http://www.kjueaiud.com/