spring+junit+eclemma完成单元测试
2015-08-04 13:58
405 查看
1.需事先将eclemma插件安装好
2.准备jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
3.编写测试类
3.1定义一个父类加载ApplicationContext对象
3.2编写子类测试具体的服务代码
4.开始测试
4.1右键-->coverage as-->junit test
4.2运行结束之后的代码将会被不同的颜色覆盖,如下图所示:红色代表测试没有覆盖到该行,黄色表示部分覆盖,绿色的行表示该行在本次测试中被覆盖到
4.3当前工程代码的覆盖率情况在coverage窗口中可以看到,如下图所示:
4.4当天如果没有完成单元测试工作,可将当前的覆盖情况生成临时文件保存起来,下次启动eclipse时在导入,如下图所示:
4.5导入上次的覆盖结果
5.生成报告,当单元测试工作完成之后,则可生成测试报告,报告文件包含以下内容:
6.打开报告,可查看代码的具体覆盖情况
至此:单元测试工作基本完成,但需要注意的是,测试的时候切记不要为了跑覆盖率而做一些不合理的测试案例,需要对覆盖率情况做合理的分析。
1.需事先将eclemma插件安装好
2.准备jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
</dependency>
3.编写测试类
3.1定义一个父类加载ApplicationContext对象
<pre class="java" name="code">@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/applicationContext.xml"}) //如果是classes下面的配置文件需写成"classpath:applicationContext.xml" public class BaseSpringTest extends AbstractJUnit4SpringContextTests { public <T> T getBean(Class<T> type) { return applicationContext.getBean(type); } public Object getBean(String beanName) { return applicationContext.getBean(beanName); } protected ApplicationContext getContext() { return applicationContext; } }
3.2编写子类测试具体的服务代码
<pre class="java" name="code">public class TestProcessor extends BaseSpringTest { @Resource private ReviewProcessor reviewProcessor; @Test public void testExecuteReview() { String rxOrder = "{\"patAllergys\":[\"allergy0\",\"allergy1\"],\"patDiags\":[\"diseaseIds0\",\"diseaseIds1\"],\"patDrugs\":[{\"drugNo\":\"drugIds0\"},{\"drugNo\":\"drugIds1\"}],\"patIsPreg\":1,\"patLiver\":\"肝功能状态\",\"patNursing\":0,\"patPregDays\":36,\"patWeight\":-1,\"patkidney\":\"肾功能状态\"}"; String alertContList = "[{\"alertCode\":\"C_15\",\"alertLevel\":[\"1\"]},{\"alertCode\":\"C_16\",\"alertLevel\":[\"1\"]}]"; try { RxOrder prxOrder = JsonUtil.getObject(rxOrder,new TypeReference<RxOrder>() {}); List<AlertCont> paConts = JsonUtil.getObject(alertContList,new TypeReference<List<AlertCont>>() {}); reviewProcessor.executeReview(prxOrder, paConts); } catch (PsException e) { System.out.println("规则引擎发生异常"); } catch (Exception e) { System.out.println("输入对象转换发生异常"); } } @Test public void test(){ String s = ";abc;abc"; int i = (int)(1+Math.random()*(10-1+1)); if(i % 2 == 0){ System.out.println(s.replaceFirst(";", "")); }else{ System.out.println(s.substring(";".length())); } } }
4.开始测试
4.1右键-->coverage as-->junit test
4.2运行结束之后的代码将会被不同的颜色覆盖,如下图所示:红色代表测试没有覆盖到该行,黄色表示部分覆盖,绿色的行表示该行在本次测试中被覆盖到
4.3当前工程代码的覆盖率情况在coverage窗口中可以看到,如下图所示:
4.4当天如果没有完成单元测试工作,可将当前的覆盖情况生成临时文件保存起来,下次启动eclipse时在导入,如下图所示:
4.5导入上次的覆盖结果
5.生成报告,当单元测试工作完成之后,则可生成测试报告,报告文件包含以下内容:
6.打开报告,可查看代码的具体覆盖情况
至此:单元测试工作基本完成,但需要注意的是,测试的时候切记不要为了跑覆盖率而做一些不合理的测试案例,需要对覆盖率情况做合理的分析。
相关文章推荐
- 总结Java开发者经常会犯的前十种错误
- JavaMail API
- spring bean id和bean name的区别
- Java 最简单的批处理
- JDK 环境变量配置(Mac)
- JDK 环境变量配置(Mac)
- Java开发者写SQL时常犯的10个错误
- Java和maven方式使用mybatis generator
- web项目出现import javax.servlet.……cannot be resolved的解决方法
- Java开发中常见的异常问题
- Java容器
- 使用JAX-WS开发WebService简单入门(1)
- Java编程:常见问题汇总
- 怎么在eclipse中修改自己的git账号信息?解决办法
- Java 创建对象方法
- spring tool suite导入Dynamic web project后,无法export出war包
- JAVA修饰符类型(public,protected,private,friendly)
- java文件的上传与下载
- struts2拦截器注解<struts> <package name="default" extends="struts-default"> <interceptors> <interc
- 重学java23种设计模式(12)代理模式