Junit4.1单元测试调整Spring

Junit4.1单元测试整合Spring

 

最近项目经理强调以后写代码必须写单元测试。

所以,为了巩固之前的知识,先写个实例单元测试的使用..

 

在测试之前需要准备Junit4.1.jar 和 spring-test.jar两个包引用到项目中。

 

下列是AbstractTest 具体的代码,所有的Test单元测试类都继承自AbstractTest 类,可以重写configLocations指定spring的测试文件。

import org.springframework.test.AbstractDependencyInjectionSpringContextTests;
/**
 * 抽象单元测试类;
 * @author Adminsitrator *
 */
public abstract class AbstractTest extends AbstractDependencyInjectionSpringContextTests {
 
 protected String[] configLocations(){
  return new String[]{"classpath:applicationContext.xml","classpath:applicationContext-test.xml"};
 }
 
 @Override
 protected String[] getConfigLocations() {
  // TODO Auto-generated method stub
  return configLocations();
 }
}

 

 

下列是具体的测试类:

/**
 * @author Administrator *
 */
public class QueueManagerDAOTest extends AbstractTest{
	private QueueManagerDao queueManagerDao;

	public void setQueueManagerDao(QueueManagerDao queueManagerDao) {
		this.queueManagerDao = queueManagerDao;
	}
	
	@Override
	protected String[] getConfigLocations() {
		//如果是指定绝对路径则配置
		//file:D:/java/workspace/testProject/WebContent/WEB-INF/applicationContext.xml即可。
		return new String[]{"classpath:applicationContext.xml","classpath:applicationContext-test.xml"};
	}
	
	@Test
	public void testSearchPersonList(){
		System.out.println("queueManagerDao--->>-->"+queueManagerDao);
		List<Person> personInfoList = queueManagerDao.queryAllObjects(IbatisKey.IBATIS_QUERY_ALL_PERSON);
		for(Personperson:personInfoList ){
			System.out.println(person.getQmId()+","+person.getQmgrName()+","+person.getHostName()+","+person.getSvrConn()+","+person.getPort());
		}
	}
}

 

写完之后,在单元测试类中 右键->Run as ->Junit Test即可。