06.Spring 整合Junit

Spring 整合Junit

junit 给我们暴露了一个注解,可以让我们替换掉它的运行器;我们需要依靠 spring 框架,因为它提供了一个运行器,可以读取配置文件(或注解)来创建容器。我们只需要告诉它配置文件在哪就行了。

一、使用步骤

导入junit的maven坐标,同时需要spring 中 aop 的 jar 包。

1. 使用@RunWith注解替换原有运行器

@RunWith(SpringJUnit4ClassRunner.class)
public class TestApp {
}

2. 使用@ContextConfiguration指定spring配置文件的位置

  • @ContextConfiguration注解的属性
    • locations: 用于指定配置文件的位置。如果是类路径下,需要用 classpath:文件名
    • classes: 用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:applicationContext.xml"})
public class TestApp {
}

3. 使用@Autowired给测试类中的变量注入数据

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:applicationContext.xml"})
public class TestApp {
    @Autowired
    private ApplicationContext ac;

    @Test
    public void testSomeMethod() {
        ...ac.getBean("someBean")...
        ...
    }

二、为何不讲测试类配置在xml中?

  1. 当我们在 xml 中配置了一个 bean,spring 加载配置文件创建容器时,就会创建对象。
  2. 测试类只是我们在测试功能时使用,而在项目中它并不参与程序逻辑,也不会解决需求上的问题,所以创建完了,并没有使用。那么存在容器中就会造成资源的浪费
  3. 基于以上两点,我们不应该把测试配置到 xml 文件中。

你可能感兴趣的:(06.Spring 整合Junit)