Spring整合Junit

Spring整合Junit

准备测试环境

创建业务层接口实现类/** * 客户的业务层接口 */
public interface ICustomerService {     
/**     * 查询所有客户     * 
@return     */    

List<Customer> findAllCustomer();       
/**     * 保存客户     * @param customer     */
    void saveCustomer(Customer customer);} /** * 客户的业务层实现类 */public class CustomerServiceImpl implements ICustomerService {     
    private ICustomerDao customerDao;       
    public void setCustomerDao(ICustomerDao customerDao) {        
    this.customerDao = customerDao;    }     
    @Override    public List<Customer> findAllCustomer() {       
     return customerDao.findAllCustomer();    }     
    @Override    public void saveCustomer(Customer customer) {        customerDao.save(customer);    } } 创建持久层接口实现类/** * 客户的持久层接口 */public interface ICustomerDao {       /**     * 查询所有客户     * 
    @return     */    List<Customer> findAllCustomer();     /**     * 保存客户     * 
    @param customer     */    void save(Customer customer);} /** * 客户的持久层实现类 */
    public class CustomerDaoImpl implements ICustomerDao {     
    @Override   
     public List<Customer> findAllCustomer() {    
         System.out.println("查询了所有客户");        return null;    } 
        @Override    public void save(Customer customer) {  
              System.out.println("保存了客户");    }} 导入junit的jar包编写测试类/** * 测试客户的业务层和持久层 */
              public class CustomerServiceTest {     
              private ICustomerService customerService;    
                 @Test    public void testFindAll(){  
                       customerService.findAllCustomer();   
                        }   
                            @Test  
                              public void testSave(){   
                                   Customer c = new Customer();  
                                         c.setCustName("传智学院 ");  
                                                customerService.saveCustomer(c);  
                                                  }}


使用xml配置步骤xml文件中的配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/beans                http://www.springframework.org/schema/beans/spring-beans.xsd">    
<!-- 把资源交给spring来管理 -->    <bean id="customerDao" class="com.itheima.dao.impl.CustomerDaoImpl"></bean>      
 <bean id="customerService" class="com.itheima.service.impl.CustomerServiceImpl">        <property name="customerDao" ref="customerDao"></property>    
 </bean></beans>  

第一步:拷贝整合junit的必备jar包到lib目录此处需要注意的是,导入jar包时,需要导入一个spring中aop的jar包。

 第二步:

使用@RunWith注解替换原有运行器@RunWith(SpringJUnit4ClassRunner.class)public class CustomerServiceTest { private ICustomerService customerService; @Test public void testFindAll(){ customerService.findAllCustomer(); } @Test public void testSave(){ Customer c = new Customer(); c.setCustName("传智学院 "); customerService.saveCustomer©; }}

第三步:

使用@ContextConfiguration指定spring配置文件的位置@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={“classpath:bean.xml”})public class CustomerServiceTest { private ICustomerService customerService; @Test public void testFindAll(){ customerService.findAllCustomer(); } @Test public void testSave(){ Customer c = new Customer(); c.setCustName("传智学院 "); customerService.saveCustomer©; }}
第四步:
使用@Autowired给测试类中的变量注入数据
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={“classpath:bean.xml”})
public class CustomerServiceTest {
@Autowired private ICustomerService customerService;
@Test public void testFindAll(){
customerService.findAllCustomer(); }
@Test public void testSave(){
Customer c = new Customer();
c.setCustName("传智学院 ");
customerService.saveCustomer©; }}

使用纯注解配置步骤
第一步:拷贝整合junit的必备jar包到lib目录此处需要注意的是,导入jar包时,需要导入一个spring中aop的jar包。
第二步:
把资源都用注解管理
@Service(“customerService”)
public class CustomerServiceImpl implements ICustomerService {
@Autowired
private ICustomerDao customerDao;
@Override
public List findAllCustomer() {
return customerDao.findAllCustomer(); }
@Override
public void saveCustomer(Customer customer) {
customerDao.save(customer);
}} /** * 客户的持久层实现类 */
@Repository(“customerDao”)
public class CustomerDaoImpl implements ICustomerDao {
@Override public List findAllCustomer() {
System.out.println(“查询了所有客户”);
return null;
}
@Override
public void save(Customer customer) {
System.out.println(“保存了客户”); }}

  第三步:

使用注解配置方式创建spring容器
@Configuration
@ComponentScan(basePackages={“com.itheima”})
public class CustomerServiceTest {
@Autowired
private ICustomerService customerService;
@Test public void testFindAll(){
customerService.findAllCustomer();
}
@Test
public void testSave(){
Customer c = new Customer();
c.setCustName("传智学院 ");
customerService.saveCustomer©;
}}

第四步:使用RunWith注解和ContextConfiguration注解配置

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes={CustomerServiceTest.class})@Configuration
@ComponentScan(basePackages={“com.itheima”})
public class CustomerServiceTest {
@Autowired
private ICustomerService customerService;
@Test public void testFindAll(){
customerService.findAllCustomer(); }
@Test
public void testSave(){ Customer c = new Customer(); c.setCustName("传智学院 "); customerService.saveCustomer©; }}

为什么不把测试类配到xml中在解释这个问题之前,先解除大家的疑虑,配到XML中能不能用呢?答案是肯定的,没问题,可以使用。那么为什么不采用配置到xml中的方式呢?这个原因是这样的:        第一:当我们在xml中配置了一个bean,spring加载配置文件创建容器时,就会创建对象。        第二:测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费。        所以,基于以上两点,我们不应该把测试配置到xml文件中。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值