java单元测试如何全覆盖_java-覆盖测试

本文介绍了Java单元测试中的Cobertura覆盖率工具,强调了覆盖测试的重要性,包括语句测试和分支测试,以及如何通过Maven配置Cobertura进行测试。示例展示了如何为一个简单的除法方法编写单元测试,指出测试覆盖率对于确保代码质量和测试完整性至关重要。
摘要由CSDN通过智能技术生成

覆盖测试-cobertura

本文不是详细介绍cobertura的文章,只是笼统上说一下覆盖测试。

从三个方面来说:

1:cobertura是一款覆盖测试的框架并且是开源框架,并且依赖于单元测试例如junit。

2:进行覆盖测试的时间段是在单元测试完成后进行(如果连单元测试都是有问题的或者是不全面,不完整的。进行覆盖测试根本没有意义)。

3:进行覆盖测试的意义,能够测试代码是否有效正确(语句测试)。同时能够检测你的单元测试是否进行了测试了所有可能的case。同时也能够测试代码部分是否全部有效(分支测试)。

书写单元测试按照规范来写,尽量每一个分支写一个case这样能使出错的时候更加明显。并且expected ,actual单独用变量表示。junit选用了4,因为junit4完全兼容junit3,所以在进行单元测试的时候最好选用junit4进行测试。

以下部分为简单的覆盖测试例子。

maven  pom文件

4.0.0

com.zhang

testjunit

0.0.1-SNAPSHOT

junit

junit

4.8.2

org.codehaus.mojo

cobertura-maven-plugin

2.5.1

**/*Model.class

主类

1 packagecom.zhang.testjunit;2

3 /**

4 *@authoract5 *6 *7 */

8 public classMyJunit {9

10 public int myDivide(int x,inty){11 if(0==y){12 System.out.println("重新输入y");13 return -1;14 }else if(0==x){15 return x/y;16 }else{17 return x/y;18 }19 }20 }

测试类

packagecom.zhang.testjunit;importjunit.framework.TestCase;/***@authoract

*

**/

public class MyJunitTest extendsTestCase{public voidtestMyDivide(){

MyJunit mj= newMyJunit();int actual = mj.myDivide(6, 2);int expected = 3;

assertEquals(expected, actual);

}public voidtestMyDivide1(){

MyJunit mj= newMyJunit();int actual = mj.myDivide(6, 0);int expected = -1;

assertEquals(expected, actual);

}

}

生成测试报告

ca59db142d6719fcc0e04d9ce04e4cb5.png

正好符合测试报告,测试类中有一个分支没有进行测试,并且model类也没有算到里面。

出处:http://www.cnblogs.com/Feeling-always-wrong/

本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值