Spring整合JUnit

Spring整合Junit

Spring整合Junit,让Junit通知Spring加载配置文件。Spring容器自动进行注入。直观上来看,简化了Junit测试类的书写。

1、导入Jar包【整合Junit的包】

spring-test-3.2.0.RELEASE.jar

2、步骤

编写DAO接口

public interface AccountDAO {
	//汇款是pay,收款是Receipt
	
	public void pay(String outer,Integer money);
	public void receipt(String inner,Integer money);

}


编写DAO实现类

public class AccountDAOImpl extends JdbcDaoSupport implements AccountDAO {

	/* (non-Javadoc)
	 * @see com.Lily.SpringLearning.J_tx_xml.AccountDAO#pay(java.lang.String, java.lang.Integer)
	 */
	@Override
	public void pay(String outer, Integer money) {
		// TODO Auto-generated method stub
		this.getJdbcTemplate().update("update account set money = money - ? where username = ?", money,outer);
		
	}

	/* (non-Javadoc)
	 * @see com.Lily.SpringLearning.J_tx_xml.AccountDAO#receipt(java.lang.String, java.lang.Integer)
	 */
	@Override
	public void receipt(String inner, Integer money) {
		// TODO Auto-generated method stub
		this.getJdbcTemplate().update("update account set money = money + ? where username = ?", money,inner);
		
	}

}


编写SERVICE接口

public interface AccountService {
	
	public void transfer(String outer ,String inner ,Integer money);

}


编写SERVICE实现类

public class AccountSerImpl implements AccountService {

	/* (non-Javadoc)
	 * @see com.Lily.SpringLearning.J_tx_xml.Ser#transfer(java.lang.String, java.lang.String, java.lang.Integer)
	 */
	private AccountDAO accountDao;
	
	
	
	public AccountDAO getAccountDao() {
		return accountDao;
	}



	public void setAccountDao(AccountDAO accountDao) {
		this.accountDao = accountDao;
	}



	@Override
	public void transfer(String outer, String inner, Integer money) {
		// TODO Auto-generated method stub
		accountDao.pay(outer, money);
		//模拟故障
		//int i=1/0;
		accountDao.receipt(inner, money);
	}

}


配置xml



	
	
	
	
	
	
	
		
			
		
		
	
	
	
	
	
		
	
	
	
	
		
	
	
			



编写Junit测试类

这里是唯一要加上注解的地方。

在开头需要加两个注解:

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations="classpath:com/Lily/SpringLearning/k_Junit/applicationContext.xml")

然后需要定义一个private的Service接口,并在它前面加上注解@Autowired

 

/**
 * 
 */
package com.Lily.SpringLearning.k_Junit;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;



/** 
 * * 
 * @author   LilyLee
 * @date     2017年6月26日
 * @time     下午9:02:32
 * @Version  1.0
 * @email    [email protected]
 *
 */

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:com/Lily/SpringLearning/k_Junit/applicationContext.xml")

public class txTest {
	
	@Autowired  //与junit整合,不需要在spring xml配置扫描
	private AccountService accountService;
	

	@Test
	public void test() {
		
		accountService.transfer("dianer", "Lily", 6);
	}

}


你可能感兴趣的:(Java框架学习笔记)