需求
在测试类中,我们需要程序能自动帮我们创建容器。一旦程序能自动为我们创建spring容器,我们就无须手动创建了。
原理分析
Junit的jar包中有@RunWith的注解,用于替换Runner;
public @interface RunWith {
Class<? extends Runner> value();
}
注解需要一个继承了Runner抽象类的类字节码文件对象;
Spring-test中提供了这个类,SpringJUnit4ClassRunner,它继承了Runner这个抽象类
步骤
1.在maven中添加spring-test的依赖,和junit
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
如果spring是大于5的版本,需要junit的版本大于等级4.12
2.在测试类上添加@RunWith()并设置value为SpringJunit4ClassRunner.Class
@RunWith(SpringJUnit4ClassRunner.class)
3.指定配置文件或注解类的地址,在测试类上使用@ContextConfiguration注解,locations指定配置文件地址,classes指定注解类的字节码
@ContextConfiguration(classes = SpringConfig.class)
@ContextConfiguration("classpath:bean.xml")
4.使用@Autowired 给测试类中的变量注入数据
@Autowired
private IAccountService as;