使用spring和junit整合的方式可以不用在每个测试单元中都创建ioc容器跟获取服务层Bean对象
步骤:
- 导入spring整合junit的jar(坐标)
- 使用Junit提供的一个注解把junit原有的main方法替换,替换成spring提供的@RunWith
--------->@RunWith(SpringJUnit4ClassRunner.class)
- 告知spring的运行器,spring和ioc创建容器是基于xml还是注解,说明其位置
@ContextConfiguration
属性:classes=“注解类.class” 指定注解类所在的位置
locations=“xxx.xml” 指定xml文件的位置,加上classpath关键字,表示在类路径下
spring和junit整合后可以实现以下替换
原有的测试类:
public class Client {
@Test
public void testFindAll(){
ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfiguration.class);
//ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");
AccountService as=ac.getBean("accountService", AccountService.class);
List<User> list=as.findAll();
System.out.println(list);
}
}
整合后的测试类:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class Client {
//直接注入
@Autowired
private AccountService as;
@Test
public void testFindAll(){
//测试单元中省去了创建容器和Service对象的步骤
List<User> list=as.findAll();
System.out.println(list);
}
}