分析Java代码覆盖
我们评价一个应用的有效性,通常要进行覆盖代码的单元测试,分析代码是否都能被有效的使用。
一般性过程是采用全面的测试用例,然后分析代码覆盖情况,对于未执行过的代码需要特别关注和分析。未执行的代码一般是由于测试用例不完善或代码本身是无用代码。
这需要借助有力的工具,这里以JProbe Coverage 为例说明。
在 Snapshot Nabigator中,选中snapshot文件,点击Coverage Browser。默认情况下,Coverage Browser窗口中的方法未执行的形式给出,即类中有多少方法没有被执行。展开我们测试的类包demos.coverage.Adventure,显示 其中的所有类,点击%Missed Methods列对该列的数据进行排序。这时我们将看到有两个类的值是50%,它们分别是Adventure和Logic,说明这两个类都各有50%的方 法没有执行到。
在 类树中点击Logic类,通过下面的Method List表我们可以看到该类所含有的方法。我们也注意到这个类的changeRoom( )方法有22.2%代码行没有执行到,它是这个类中最多的。双击该方法查看它的源代码。从打开的源程序窗口可以看到红色的代码表示没有执行到的语句,仔细 看changeRoom( )方法未执行语句的第一行也就是第108行,可以注意到在这个方法含有一个条件判断句,那个未执行的语句必须在条件永远不能满足的情况下才能执行,也就是 说执行该语句的条件非法,执行不到它。