-1

在下面的示例代码中,eclemma 突出显示

  • public class Test {System.out.println("false");红色
  • if (a<15)像黄色

我得到的代码覆盖率是 62%。埃莱玛报告:

Missed Instructions Cov. 62% ,
Missed Branches Cov. 50% ,
Missed 2 , 
Cxty 3 ,
Missed 2 ,
Lines 7 ,
Missed 1,
Methods 2 ,
Missed 0 ,
Classes 1

请有人解释一下,代码覆盖率怎么只有 62%?

package sanityReady;
public class Test {
    public static void main(String[] args) {
        int a=10;
        if (a<15)
        {
            System.out.println("true");
        }
        else
        {
            System.out.println("false");
        }
    }
}
4

1 回答 1

0

EclEmma 通常会尝试执行您的测试来计算代码覆盖率。您的测试应该涵盖在普通 java 类中编写的所有条件。

通常,当您一起编写 IF-ELSE 时,EclEmma 期望编写 2 个测试来测试这两个条件,如果您的测试只测试 IF 或 ELSE,那么它会将 IF-ELSE 标记为黄色,表示它已部分测试!

在上面的示例中,您的 a=10 始终小于 15,因此您的测试只是测试IF部分。因此,您将获得 RED 线路,else因为它根本没有经过测试。

您将需要重构您的代码,以便您的测试应该同时涵盖IFELSE. 那么只有你的代码覆盖率将是 100%。

似乎您只是在测试 EclEmma 的工作方式,否则您应该编写适当的 Junit 测试来测试代码的代码覆盖率。

你可以查看这个学习 Junits 的 URL:http ://www.tutorialspoint.com/junit/

于 2016-09-13T09:05:35.930 回答