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;}@Overrideprotected String[] getConfigLocations() {//如果是指定绝对路径则配置//file:D:/java/workspace/testProject/WebContent/WEB-INF/applicationContext.xml即可。return new String[]{"classpath:applicationContext.xml","classpath:applicationContext-test.xml"};}@Testpublic 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即可。
?