覆盖测试-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);
}
}
生成测试报告
正好符合测试报告,测试类中有一个分支没有进行测试,并且model类也没有算到里面。
出处:http://www.cnblogs.com/Feeling-always-wrong/
本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。