首先测试类上方要加入
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring/*.xml")
其中SpringJUnit4ClassRunner的pom依赖为
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.25.RELEASE</version>
<scope>test</scope>
</dependency>
注意junit的版本为4.12及以上,不然会报错
ContextConfiguration中locations为spring及springMVC配置文件
注意,测试类调用的类中如果包含自动注入的对象,那么该类生成的对象必须使用自动注入,不能够new出来,否则该类中的自动注入对象会报空指针异常。
例如,在Test类中使用了UserController类,而UserController类中调用了自动注入的UserService类,那么UserService的对象会出现空指针异常。
这是因为加了@Component的注解的类通过spring配置文件扫描后会交由IoC容器管理,自动创建对象,而自己new出来的类是不会注入到容器的。如果有需要,也可以自行编写工具类,将生成的类主动注入到ApplicationContext容器中。