运行 Cobertura 这样的工具和运行您的 JUnit 测试一样简单,只是有一个用专门逻辑在测试时检查代码以报告覆盖率的中间步骤(这都是通过工具的 Ant 任务或 Maven 的目标完成的)。
正如您在图 1 中看到的,HierarchyBuilder
的覆盖报告说明部分代码没有 被执行。事实上,Cobertura 认为 HierarchyBuilder
的行覆盖率为 59%,分支覆盖率为 75%。
图 1. Cobertura 的报告
String
参数的 buildHierarchy()
方法根本没有被测试。其次,另一个 buildHierarchy()
方法中的两个条件都没有被执行。有趣的是,所要关注的正是第二个没有被执行的 if
块。
因为我所需要做的只是增加一些测试案例,所以我并不担心这一点。一旦我到达了所关注的区域,我就可以很好地完成工作。注意我这儿的逻辑:我使用测试报告来了解什么没有 被测试。现在我已经可以选择使用这些数据来增强测试或者继续工作。在本例中,我准备增强我的测试,因为我还有一些重要的区域未覆盖。