Spring整合junit分析

我们知道一个程序的入口是main方法,junit框架中就集成了一个main方法(Runner类),该方法会判断当前测试类中那些方法有@Test注解,junit就会通过Method.invoke()方法调用执行。我们在spring框架中如何集成junit呢?由于junit不知道我们使用了spring框架,所以就不会为我们读取配置文件/类创建spring核心容器,就无法通过Autowired注解为变量注入值。那么在使用spring是如何集成junit呢?

Spring中使用junit单元测试:

1.pom文件中导入Spring整合junit的jar包坐标,spring-test jar包

2.使用junit提供的一个注解@Runwith把原来的main方法成spring提供的,@RunWith(SpringJUnit4ClassRunner.class),该类继承了junit包下的Runner类

3.告知Spring运行器,ioc创建是基于xml还是注解并说明位置

 @ContextConfiguration
 locations:指定xml文件的位置,加上classpath关键字,表示在类路径下
 classes:指定注解类所在地位置

当我们使用spring 5.x版本的时候,要求junit的jar必须是4.12及以上,示例代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountTest {

    @Autowired
    private IAccountService as = null;

    @Test
    public void testFindAll() {
        List<Account> res = as.finAccounts();
        for(Account account : res){
            System.out.println(account);
        }
    }
}

 

Guess you like

Origin blog.csdn.net/u011821510/article/details/104413942