Day05-Spring整合Junit
1.1 原始Junit测试Spring的问题
在测试类中,每个测试方法都有一下两行代码:
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
IAccountService as = ac.getBean("accountService",IAccountService.class)
这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常,所以又不能轻易删掉
1.2 上述问题解决思路
- 让SpringJunit负责创建Spring容器,但是需要将配置文件的名称告诉它
- 将需要进行的测试Bean直接在测试类中进行注入
1.3 Spring集成Junit步骤
- 导入spring集成Junit的坐标
- 使用@Runwith注解替换原来的运行期
- 使用@ContextConfiguration指定配置文件或配置类
- 使用@Autowired注入需要测试的对象
- 创建测试方法进行测试
1.4 Spring集成Junit代码实现
1.导入spring集成Junit的坐标
<!--此处需要注意的是,spring5 及以上版本要求Junit的版本必须是4.12及以上-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
2.使用@Runwith注解替换原来的运行期
@RunWith(SpringJUnit4ClassRunner.class)
public class SpringJunitTest{
}
3.使用@ContextConfiguration指定配置文件或配置类
@RunWith(SpringJUnit4ClassRunner.class)
//加载spring核心配置文件
//加载ContextConfiguration(classes={SpringConfiguration.class})
public class SpringJunitTest{
}
4.使用@Autowired注入需要测试对象
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(Classes={SpringConfiguration.class})
public class SpringJunitTest{
@Autowired
private UserService userService;
}
5.创建测试方法进行测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(Classes={SpringConfiguration.class})
public class SpringJunitTest{
@Autowired
private UserService userService;
@Test
public void testUserService(){
userService.save();
}
1.5 知识要点
Spring集成Junit步骤
- 导入spring集成Junit的坐标
- 使用@Runwith注解替换原来的运行期
- 使用@ContextConfiguration指定配置文件或配置类
- 使用@Autowired注入需要测试的对象
- 创建测试方法进行测试

本文介绍了Spring如何与Junit结合进行单元测试。通过SpringJUnit4ClassRunner类启动测试,@ContextConfiguration指定配置文件,@Autowired注解注入需要测试的对象,简化了原始Junit测试中手动创建Spring容器的步骤,使得测试更加便捷。详细步骤包括导入依赖、替换运行期、指定配置和注入测试对象。
2782

被折叠的 条评论
为什么被折叠?



