◎筱米加步枪◎.Blog

Happy coding

Spring中进行测试-Junit框架的扩展

利用Spring来进行测试。首先看看下面几个类。【参照网上的资料】

1.AbstractSpringContextTests 类是针对所有测试情景的类,一般不使用,而是使用他们的之类。

2.AbstractDependencyInjectionSpringContextTests 类继承了AbstractSpringContextTests是一个针对所有测试的超类,具体依赖于Spring上下文。可支持依赖注入

3.AbstractTransactionalSpringContextTests 类继承了AbstractDependencyInjectionSpringContextTests,继承该类的测试用例在spring管理的事务中进行,测试完后对数据库的记录不会造成任何影响。你对数据库进行一些操作后,它会自动把数据库回滚,这样就保证了你的测试对于环境没有任何影响。

测试用例需实现protected abstract String[] getConfigLocations()方法来获取上下文。

1.创建一个测试类的基类

/**
 * Spring测试的基类
 * 
 * @author ChenST
 *
 */
public abstract class BaseSpringTest extends AbstractDependencyInjectionSpringContextTests {
	
	/**
	 * 获取上下文spring context,该路径是在classpath下的路径
	 */
	public String[] getConfigLocations() {
		String[] configLocations = { "applicationContext.xml" };
		return configLocations;
	}
}

2.测试用例

/**
 * 测试用例,测试Dao的方法getUserInfo(String userCode)
 * 
 * @author ChenST
 *
 */
public class UsersDaoTest extends BaseSpringTest {
	
	/** 用户Dao,注入实现 */
	private UsersDAO userDao;
	
	public void setUserDao(UsersDAO userDao) {
		this.userDao = userDao;
	}

	/**
	 * 测试getUserInfo()方法,需要以test开头
	 */
	public void testGetUserInfo(){
		Users user=userDao.getUserInfo("004");
	    System.out.println(user.getDepartment().getDepName());
	}
}

可通过MyEclipse中的Outline透视图中进行单个方法的测试或者整个类的测试。