前言
谈到单元测试,想必各位都应该听说过Junit的大名。是的,直至今日,虽然目前市面上确实拥有诸多优秀的Test Frameworks,但笔者至今仍在使用JUnit来跑自己的单元测试。Junit目前的最新版本为4.x,至于变化吗还是有的,最明显的莫过于基于Annotations的方式...
其实说测试工作到底属于谁,笔者不想过于纠结,从客观来说自己写的代码,自己测试确实是应该的,所以笔者不再想再次争论开发人员是否应该把所有工作中心都集中在业务层之类的话语,那么就此打住。
当然笔者本篇博文不是要介绍如何使用JUnit,而是介绍如何使用JUnit和EclEmma工具做集成测试,这才是本篇文章的目的。笔者比较推崇EclEmma最为你项目的代码测试覆盖率工具,原因如下3点:
1、使用简单方便,维护成本低;
2、开源等之类的都是废话,更关注的是能够生成像模像样的测试覆盖率文档交差是主要;
3、想要让你的项目开发更规范、更流程化,这种形式显然是必要的;
一、EclEmma下载与安装
EclEmma作为一款优秀的代码测试覆盖率插件,目前在市面上还是拥有较为多的使用场景。那么如果你eclipse等IDE上没有安装,你仍然需要老老实实的下载安装:
安装过程大概耗时一分钟左右,这段时间你可以很果断的站起来扭扭屁股,活动活动老胳膊老腿,防止脑血栓,脑淤血等疾病...
安装好后,eclipse会自动重启,你只需耐心等待即可。当成功安装好后,你会在eclipse等IDE工具的菜单栏发现EclEmma的图形插件:
当然安装完毕只是良好的开始,接下来的章节我们会讲到究竟如何来使用EclEmma与JUnit的集成测试操作,与如果使用EclEmma生成测试覆盖率报告。
二、JUnit4.x+EclEmma集成测试
万事俱备后,我们只需深呼吸一下,接下来的工作才是重点。请用一分钟快速的构建好你的项目工程以及测试代码。
由于笔者测试项目使用Maven3.x进行项目构建,如果各位不清楚Maven的基本使用,请参考笔者的Use Maven3.x博文。废话不多说,以下为笔者的项目工程目录结构:
源码如下:
package com.test.demo;
/**
* Hello world!
*
*/
public class App
{
public int age()
{
return 18;
}
public String name()
{
return "EclEmma";
}
}
测试代码如下:
package com.test.demo;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
public class AppTest {
private App app = new App();
@Before
public void setUp() throws Exception {
}
@Test
public void testAge() {
assertEquals(10, app.age());
}
@Test
public void testName() {
assertEquals("EclEmma", app.name());
}
}
既然代码写好了,咱们首先按照管理跑个JUnit:
值得庆幸的是测试代码全部通过,来吧,喝杯小酒高兴一下呗。
既然测试已经通过,那么我们有必要开始使用EclEmma生成测试覆盖率了,在开始之前,笔者还是有义务进行扫盲,所谓测试覆盖率,客观来说指的是你的测试代码到底覆盖了你项目源代码的多少有效范围。懂吗????
既然动了,我就接着说了,点击项目右键选择Coverage As属性跑Junit你便可以看见你项目的测试覆盖率了:
通过上图咱们可以很清晰的发现,咱们的测试覆盖率为100%,来吧,再喝一杯。
App一共包含2个方法,如果笔者的测试代码只针对其中一个方法进行测试,而忽略另一个呢?什么效果?你懂得,从理论上来说这种测试覆盖率只有50%左右,到底实际如何呢?观看下图你便知晓:
上图可以很清晰的发现,测试覆盖率由于笔者仅对App测试了一个方法,那么测试覆盖率必然降低。
最后一点,仔细看下图:
上图绿色部分代表的是已经测试覆盖通过的代码,红色部分为未测非覆盖的代码,当然还存在一种黄色部分,由于天色已晚,笔者需要养精蓄锐,所以情形不再模拟重现,请自行摸索,出现黄色的原因是因为代码未得到完全执行所致。
三、生成测试覆盖率文档
当我们生成测试覆盖率后,并不希望以截图这么挫的方式发给你的上级,所以我们需要EclEmma的自动生成覆盖率文档来帮助我们交差。
右击Coverage台,选择Export Session到处即可,到处格式多种多样,你可选择常规的HTML格式,XML格式等等,笔者选择HTML格式,因为这样更直观:
当生成后,我们打开另存的HTML文件,你会清晰的发现测试覆盖率的详细报告:
提示:
生成测试覆盖率文档后,咱们的代码页将随着文档一起打包,这是既不安全的!
分享到:
相关推荐
junit4.4.jar +easymock3.0.jar
(java常用工具jar组合)c3p0-0.9.1.2.bin+jackson 2.82+JSTL-jar+junit4.4.jar+gson-2.5.jar
压缩包中包含re-sign.jar、junit4.jar、robotium.jar三个jar包,提供学习或进行安卓移动开发的测试;
junit4.11.jar + hamcrest-core1.3.jar + hamcrest-library1.3.jar 完整版
junit-4.12.jar + hamcrest-core-1.3.jar - 我的博客:blog.csdn.net/Dream_Weave
junit4.x使用指南-帮助文档。junit4.x使用指南-帮助文档。junit4.x使用指南-帮助文档。
junit-4.7.jar+junit-4.7-src.jar
Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions...
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...
junit4.0.zip
junit4.x_en.chm英文帮助文档
junit5.jar
junit-4.12.jar+junit-4.12-javadoc.jar+junit-4.12-sources.jar
java单元测试jar包,单元测试需遵守相应的语法及规则。避免initializationerror,unrooted tests错误需同时引用这两个jar包
标签:ant-junit4.jar.zip,ant,junit4,jar.zip包下载,依赖包
Junit4.jar, Junit4.jar, Junit4.jar, Junit4.jar, Junit4.jar, Junit4.jar
junit4.8.2.zip 源码,希望对大家有用
junit4的jar包,使用annotation进行junit测试!
junit3.8.1.rar JAVA编译,测试工具