這樣看來,我的第一次覆蓋測試是失敗的。首先,帶有 String 參數的 buildHierarchy() 方法根本沒有被測試。其次,另一個 buildHierarchy() 方法中的兩個條件都沒有被執行。有趣的是,所要關注的正是第二個沒有被執行的 if 塊。
因為我所需要做的只是增加一些測試案例,所以我并不擔心這一點。一旦我到達了所關注的區域,我就可以很好地完成工作。注意我這兒的邏輯:我使用測試報告來了解什么沒有 被測試,F在我已經可以選擇使用這些數據來增強測試或者繼續工作。在本例中,我準備增強我的測試,因為我還有一些重要的區域未覆蓋。
Cobertura:第二輪
清單 4 是一個更新過的 JUnit 測試案例,增加了一些附加測試案例,以試圖完全執行 HierarchyBuilder:
清單 4. 更新過的 JUnit 測試案例
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() { zo
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertEquals("should be junit.framework.TestCase",
"junit.framework.TestCase",
hier.getHierarchyClassNames()[0]);
}
public void testBuildHierarchySize() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertEquals("should be 2", 2, hier.getHierarchyClassNames().length);
}
public void testBuildHierarchyStrNotNull() throws Exception{
Hierarchy hier =
HierarchyBuilder.
buildHierarchy("test.com.vanward.adana.hierarchy.HierarchyBuilderTest");
assertNotNull("object was null", hier);
}
public void testBuildHierarchyStrName() throws Exception{
Hierarchy hier =
HierarchyBuilder.
buildHierarchy("test.com.vanward.adana.hierarchy.HierarchyBuilderTest");
assertEquals("should be junit.framework.Assert",
"junit.framework.Assert",
hier.getHierarchyClassNames()[1]);
文章來源于領測軟件測試網 http://www.kjueaiud.com/