eclemma覆盖率_如何集成和使用EclEmma插件来获得良好的Junit覆盖率

eclemma覆盖率

eclemma覆盖率

你好朋友, 如果编写好的代码很重要,那么编写覆盖所有业务逻辑的优良Junit测试用例也同样重要。通过编写覆盖业务逻辑的Junit测试用例,我们实际上确保代码的每种方法都能正常工作符合预期,因此减少了在软件开发的后期阶段中获取错误的机会。在本教程中,我们将看到如何使用EclEmma插件来检查Java代码的代码覆盖率,从而可以确保通过Junit测试用例具有良好的覆盖率。

第1步 :

转到以下链接:

https://www.eclemma.org/

第2步 :

单击左侧菜单上的安装->下载选项。

第三步:

右键单击最顶部(最新)链接(在撰写本文时,它是“ eclemma-3.1.2.zip”),然后将Zip保存在您的计算机上。

步骤4 :

将zip提取到您选择的相同位置。

步骤5:

复制提取的文件夹并转到eclipse文件夹(安装了eclipse的位置),然后将此提取的文件夹粘贴到eclipse文件夹中的dropins文件夹中。

步骤6:

重新启动Eclipse。

步骤7:

右键单击项目文件夹,然后选择Coverage As-> JUnit Test,然后单击Coverage按钮,它将运行所有测试用例并检查coverage。

现在,由于在此阶段,我们在服务层的代码中没有任何测试用例,因此我们获得了0.0%的覆盖率,并且所有代码行均显示为红色,这意味着Junit测试中未覆盖这些行。

一般来说 :

如果看到绿色,则表示Junit测试中覆盖了所有这些线条。

如果看到红色,则表示Junit测试未覆盖所有这些线。

如果看到黄色,则表示您的测试已经通过了这些行,但并未涵盖所有测试用例。

接下来,我们将创建一个Spring Boot项目,在其中添加一些代码,然后逐步编写测试用例,并查看EclEmma插件如何提供代码覆盖率。

第八步:

让我们通过创建一个简单的名称为“ eclemma”的Spring Boot项目来了解它的工作原理。请按照我的教程“ 如何使用Spring Initializer创建Spring Boot项目来创建Spring Boot项目”。

步骤9:

在新创建的项目中,按照以下屏幕快照创建具有名称的包和类

第十步:

这是CalculatorService的源代码

 package com.blogspot.javasolutionsguide.eclmma.service;
 /**

 * @author JavaSolutionsGuide

 *

 */
 public interface CalculatorService { 
 int add( int a , int b);
 
 int subtract( int a, int b);
 }
<br>
<br>
<br>

这是CalcualtorServiceImpl的源代码

package com.blogspot.javasolutionsguide.eclemma.service.impl; /**

 * @author javaSolutionsGuide

 *

 */
 public class CalculatorServiceImpl {
 
 public int add( int a , int b) {

  int c = a + b;

  return c;

 }

 public int subtract( int a, int b) {

  int c = a - b;

  return c;

 }
 }

步骤11:

因此,首先我们将只为add()方法编写测试用例,然后运行Eclemma coverage

这是add()方法的JUnit测试用例的代码:

 package com.blogspot.javasolutionsguide.eclEmma.service.impl;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;

import com.blogspot.javasolutionsguide.eclemma.service.impl.CalculatorServiceImpl;  /**

 * @author JavaSolutionsGuide

 *

 */
 @RunWith (SpringRunner. class )
 @SpringBootTest (classes = {CalculatorServiceImpl. class })
 public class CalculatorServiceImplTest {
 
 @Autowired

 private CalculatorServiceImpl calculatorService;
  
 @Test

 public void add_for_givenTwoInteger_shouldReturn_sumOfTwo() {

  Assert.assertEquals( "Test case to check if add returns sum of two give positive numbers" , 3 , calculatorService.add( 1 , 2 ));

    }
 }
<br>
<br>
<br>

第十二步:

现在让我们再次运行EclEmma Coverage并查看结果:

可以看到,CalculatorServiceImpl类的覆盖率从0.0%增加到60%,并且运行覆盖率后,add()方法的代码行现在变为绿色,这意味着Junit测试覆盖了这些行。

步骤13:

同样,我们将为减法编写所有测试用例并查看覆盖率。

在CalculatorServiceImplTest.java中添加以下测试用例:

 @Test
 public void subtract_for_givenTwoInteger_shouldReturn_differenceOfTwo() { 
 Assert.assertEquals( "Test case to check if subtract returns sum of two give positive numbers" , 1 , calculatorService.subtract( 2 , 1 ));
 }

就像我们现在看到的那样,CalculatorServiceImpl类的覆盖率是100%。

概要

因此,在本教程中,我们学习了如何使用EclEmma插件查看您代码的Junit测试覆盖范围。基于Junit代码覆盖率报告,我们可以找出Junit覆盖了我们代码的哪些部分,以及仍然左边,然后我们可以为未发现的代码行编写更多的测试用例,这将确保我们已通过Junit涵盖了所有必需的代码行,从而提高了代码质量。

如果您喜欢阅读本文,请与您认为有帮助的朋友,同事分享。

翻译自: https://www.javacodegeeks.com/2019/08/integrate-use-eclemma-plugin-having-good-junit-coverage.html

eclemma覆盖率

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值