spring-Junit测试组件的应用:

配置文件方式:

//替换junit的运行器,用spring整合的Junit组件运行相关方法
@RunWith(value=SpringJUnit4ClassRunner.class)
//指定创建容器需要的配置文件,并将当前类对象放入spring容器
@ContextConfiguration(value= {"classpath:beans.xml"})
public class CustomerServiceTest {
	//只有将当前类对象放入到spring容器中,才能进行依赖注入,即先IOC再DI
	@Resource(name="customerService")
	private ICustomerService cs;
	@Test
	public void test1() {
		cs.saveCustomer();
	}
	
	@Test
	public void test2() {
		cs.updateCustomer();
	}
	
	@Test
	public void test3() {
		cs.findCustomer();
	}
	
	@Test
	public void test4() {
		cs.deleteCustomer();
	}
}

纯注解的测试类配置方式:

package cn.yew.service.test;

import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import cn.yew.config.SpringConfig;
import cn.yew.service.ICustomerService;
//替换junit的运行器
@RunWith(value=SpringJUnit4ClassRunner.class)
//指定创建容器需要的配置类
@ContextConfiguration(classes= {CustomerServiceTest.class})//创建spring容器

//以上两个注解是Junit和spring框架整合后用于标记测试类的
//以下两个注解是用于指定spring配置类用的
//配置类和测试类,可以是同一个类,也可以不是。

//配置当前类为spring入口配置类。
@Configuration//直接将运行测试类指定为配置类,不用另外指定spring配置类。
@ComponentScan(basePackages={"cn.yew.service"})


//替换junit的运行器
//@RunWith(value=SpringJUnit4ClassRunner.class)
创建容器需要的配置类
//@ContextConfiguration(classes= {SpringConfig.class})
public class CustomerServiceTest {
	@Resource(name="customerService")
	private ICustomerService cs;
	@Test
	public void test1() {
		cs.saveCustomer();
	}
	
	@Test
	public void test2() {
		cs.updateCustomer();
	}
	
	@Test
	public void test3() {
		cs.findCustomer();
	}
	
	@Test
	public void test4() {
		cs.deleteCustomer();
	}
}

spring-Junit组件和jpa注解联合使用:

@RunWith(SpringJUnit4ClassRunner.class)//替换Junit运行容器
@ContextConfiguration({"classpath:applicationContext.xml"})//指定spring配置文件,创建spring容器
public class StandardTeat {

	@Autowired
	private StandardDaoImpl standardDaoImpl;
	
	//jpa和hibernate在进行增删改操作时,都需要开启事务,所以此处需要配置spring事务
	@Test
	@Transactional//该注解和@Test注解一起使用时,会自动回滚
	@Rollback(false)//为了查看数据库效果,此处需要设置不回滚
	public void test01() {
		Standard standard = new Standard();
		standard.setName("小明");
		standardDaoImpl.save(standard);
	}
	
	
}

spring整合jpa的dao层部分代码:

@Repository
public class StandardDaoImpl implements StandardDao{

	//在spring容器中查询EntityManager的工厂对象,让工厂对象创建一个
	//EntityManager对象,然后赋值给em,@Autowired:是在容器中直接找对象,
	//该注解是找对象的工厂。
	@PersistenceContext
	private EntityManager em;//因为EntityManager在dao层用到,所以hibernate-entitymanager这个jar包导入到dao层
	@Override
	public void save(Standard standard) {
		//保存数据到数据库。
		em.persist(standard);
		
	}

}

测试结果:

先获取序列的值,赋给对象,作为id,然后执行插入语句。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值