Spring集成junit

因为Junit对spring的测试非常繁琐,所以spring提供对junit的集成方案

 


 

 
@ContextConfiguration这个注解通常与@RunWith(SpringJUnit4ClassRunner.class)联合使用用来测试

当一个类添加了注解@Component,那么他就自动变成了一个bean,就不需要再Spring配置文件中显示的配置了。把这些bean收集起来通常有两种方式,Java的方式和XML的方式。当这些bean收集起来之后,当我们想要在某个测试类使用@Autowired注解来引入这些收集起来的bean时,只需要给这个测试类添加@ContextConfiguration注解来标注我们想要导入这个测试类的某些bean。

1. 导入Spring集成junit坐标

   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>

2. 使用@Runwith替换原来的运行期

@RunWith(SpringJUnit4ClassRunner.class)

3. 使用@ContextConfiguration指定配置文件或配置类

  • (1)配置文件:

    @ContextConfiguration("classpath:applicationContext.xml")//value可省略
    @Autowired
    private UserService userService;
    
    @Test
    public void test1(){
        userService.save();
    }
    
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:applicationContext.xml")//value可省略
    public class SpringJunitTest {
        @Autowired
        private UserService userService;
    
       @Autowired
       private DataSource dataSource;
    
        @Test
        public void test1() throws SQLException {
            userService.save();
            System.out.println(dataSource.getConnection());
        }
      }
    
  • (2)配置类:

    @ContextConfiguration(classes={SpringConfiguration.class})
    
    @RunWith(SpringJUnit4ClassRunner.class)
    //@ContextConfiguration("classpath:applicationContext.xml")//value可省略
    @ContextConfiguration(classes={SpringConfiguration.class})
    public class SpringJunitTest {
        @Autowired
        private UserService userService;
    
       @Autowired
       private DataSource dataSource;
    
        @Test
        public void test1() throws SQLException {
            userService.save();
            System.out.println(dataSource.getConnection());
        }
    }
    
    
posted @ 2022-03-20 18:49  长情c  阅读(89)  评论(0)    收藏  举报