这两天做Web开发,发现通过Spring进行对象管理之后,做测试变得复杂了。因为所有的Bean都需要在 applicationContext.xml中加载好,之后再通过@Resource去取得。如果每次都要整个业务流做的差不多了再去测试,这样效率很 低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。于是想起Spring有一个测试框架,能够整合JUnit进行测试,于是便拿出来试试~
废话不多说,教程直接开始。
1. 加入依赖包
使用Spring的测试框架需要加入以下依赖包:
JUnit 4 (官方下载:https://github.com/KentBeck/junit/downloads)
Spring Test (Spring框架中的test包)
Spring 相关其他依赖包(不再赘述了,就是context等包)
2. 创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。
3. 创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。
测试类应该继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests
对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:
如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。 事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用 AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件 中加入transactionManager bean:
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
如果没有添加上述bean,将会抛出NoSuchBeanDefinitionException,指明 No bean named 'transactionManager' is definded.
4. 配置测试类
添加如下内容在class前,用于配置applicationContext.xml文件的位置。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
5. 创建测试方法
创建测试用方法,推荐名称为 “被测方法名称+ Test”。
测试方法上方加入 @Test
6. 通过JUnit 4 执行
右键方法名,选择则“Run As”→“JUnit Test”即可
附录1:整体测试类文件
/* @(#) UserDaoTest.java
*
* Date: 2012-1-16
*
* Author: Rainisic
*/
package com.mb.dao;
import javax.annotation.Resource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.mb.entity.User;
/**
* @author Rainisic
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class UserDaoTest extends AbstractJUnit4SpringContextTests {
@Resource
private UserDaoInterface userDao;
@Test
public void saveTest() {
User user1 = new User();
user1.setUsername("rainisic");
user1.setPassword("123456");
user1.setNickName("rainisic");
user1.setEmail("rainisic@gmail.com");
User user2 = new User();
user2.setUsername("admin");
user2.setPassword("123456");
user2.setNickName("admin");
user2.setEmail("admin@admin.com");
User user3 = new User();
user3.setUsername("test");
user3.setPassword("123456");
user3.setNickName("test");
user3.setEmail("test@gmail.com");
userDao.save(user1);
userDao.save(user2);
userDao.save(user3);
}
}
OK,到此为止就可以使用Spring的测试框架了。
转发自:
http://www.360doc.com/content/12/1014/00/7471983_241330790.shtml
分享到:
相关推荐
该资源包含了spring整合单元测试Junit开发包spring-test-4.2.4.RELEASE.jar
Spring整合Junit框架进行单元测试Demo 详细参考: http://blog.csdn.net/stemq/article/details/53291919
SpringBoot中整合Junit测试示例源码
springboot整合junit测试用例demo
spring+springmvc+mybatis+maven+junit的整合,适合初学者
spring整合Junit4所依赖的jar
Spring框架对JUnit进行了整合,可以方便地在Spring环境中进行单元测试。 接管JUnit资源是指Spring框架为了方便进行单元测试,在测试类中提供了自动装配和依赖注入的功能,使得测试类能够轻松地使用Spring容器中的...
spring+hibernate整合列子,用junit测试增删改查都实现(MySQL包含表)
整合spring MVC框架的jar包/springJunit4测试jar,包括commons-logging-1.2,spring-aop,spring-beans,spring-context,spring-core,spring-test,spring-web,spring-webmvc
Spring整合Junit测试:Spring整合Junit测试时需要的jar包.
一个空的Springboot2项目模板, 已包含druid和配置,能启动druid的监控平台 ;包括controller/service/entities和junit test的例子.
SpringBoot实战:整合jUnit测试框架一、前言二、添加依赖三、简单业务代码四、创建测试类五、运行测试类1.单个方法或类的测试2.运行整个项目的测试方法2.1.使用IDEA运行整个项目的测试类2.2.使用maven命令运行整个...
springboot2.0.4+oracle+mybatis+junit的整合,内包含junit对mybatis的单元测试代码
整合最新SSH项目jar包:含log4j,junit测试,json,hib4,spring4,struts2.3.15,c3p0数据源
Spring整合Junit测试:Spring整合Junit测试使用的时候所需啊哟的jar包是 spring-test-3.2.0.RELEASE.jar
本文主要介绍的技术:...Junit单元测试 Spring整合JSON输出 Spring整合Mybatis不需要写DAO层代码 Log4j控制输出,主要介绍扩展方式写日志进数据库的方式 代码注释的规范,和一些MyEclipse的规范操作(个人觉得规范的)
hibernate+spring +ant+junit 1.整合hibernate+spring 2.ant自动生成xml文件和api 3.junit测试hql语句 4.c标签写的前台分页程序
3.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 (特别注意:Spring3.0里不在提供对jotm的封装,spring-tx里没有JotmFactoryBean.class,我在jar里添加了类) 2)Demo 导入说明: 1.Eclipse ...
springboot整合junit进行单元测试的项目代码(b站黑马程序员同步代码)
主要介绍了spring cloud如何使用spring-test进行单元测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧