Day05-Spring整合Junit

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步骤

  1. 导入spring集成Junit的坐标
  2. 使用@Runwith注解替换原来的运行期
  3. 使用@ContextConfiguration指定配置文件或配置类
  4. 使用@Autowired注入需要测试的对象
  5. 创建测试方法进行测试

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步骤

  1. 导入spring集成Junit的坐标
  2. 使用@Runwith注解替换原来的运行期
  3. 使用@ContextConfiguration指定配置文件或配置类
  4. 使用@Autowired注入需要测试的对象
  5. 创建测试方法进行测试

你可能感兴趣的:(Spring,Java学习,java,spring,intellij-idea)