在平常junit单元测试中,junit不能识别spring的注解,从而我们无法使用注入的方式获得ioc容器中的对象。
解决:spring整合junit,用spring提供的运行器,在执行测试方法前读取配置文件(或注解)来创建容器,在执行测试方法。
步骤:
1.添加依赖spring-test
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> </dependency>
2.在测试类上添加 @RunWith 注解,指定 Spring 的运行器,这里 Spring的运行器是SpringJunit4ClassRunner
@RunWith(SpringJUnit4ClassRunner.class)
3.在测试类上添加@ContextConfiguration注解,通过注解里边的属性locations指定spring配置文件的位置
@ContextConfiguration(locations = {"classpath:ApplicationContext.xml"})
4.注入对象,执行测试
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:ApplicationContext.xml"}) public class MybatisTest { @Autowired private UserMapper userMapper; @Test public void testFindAll(){ List<User> list = userMapper.findAll(); for (User user : list) { System.out.println(user); } } }