運行 Cobertura 這樣的工具和運行您的 JUnit 測試一樣簡單,只是有一個用專門邏輯在測試時檢查代碼以報告覆蓋率的中間步驟(這都是通過工具的 Ant 任務或 Maven 的目標完成的)。
正如您在圖 1 中看到的,HierarchyBuilder
的覆蓋報告說明部分代碼沒有 被執行。事實上,Cobertura 認為 HierarchyBuilder
的行覆蓋率為 59%,分支覆蓋率為 75%。
圖 1. Cobertura 的報告

String
參數的 buildHierarchy()
方法根本沒有被測試。其次,另一個 buildHierarchy()
方法中的兩個條件都沒有被執行。有趣的是,所要關注的正是第二個沒有被執行的 if
塊。
因為我所需要做的只是增加一些測試案例,所以我并不擔心這一點。一旦我到達了所關注的區域,我就可以很好地完成工作。注意我這兒的邏輯:我使用測試報告來了解什么沒有 被測試,F在我已經可以選擇使用這些數據來增強測試或者繼續工作。在本例中,我準備增強我的測試,因為我還有一些重要的區域未覆蓋。