spring学习(二十一)--spring单元测试

Posted on 2019-11-06 22:57  GLLegolas  阅读(200)  评论(0编辑  收藏  举报

spring进行测试,可以通过main函数,可以通过junit。

 

1、使用mian函数,一定要加载配置文件,进行bean初始化:

    public static void main(String[] args) {
        ApplicationContext aContext = new ClassPathXmlApplicationContext("classpath:springConfig/spring-all.xml");
        System.out.println(aContext.getBean("wanzi"));
    }

 

2、使用juint测试。spring使用junit测试,除了junit4和spring的jar包,还需要spring-test.jar

pom.xml

  <properties>
    <spring.version>4.0.5.RELEASE</spring.version>
  </properties>


<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit.version}</version>
      <scope>test</scope>
    </dependency>
    <!-- spring的test,除了junit4和spring的jar包,还需要spring-test.jar -->
    <dependency>  
        <groupId>org.springframework</groupId>  
        <artifactId>spring-test</artifactId>  
        <version>${spring.version}</version>  
    </dependency>

 

测试类:

package springAnnotions;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;
import beans.Wanzi;


//@RunWith 注释标签是 Junit 提供的,用来说明此测试类的运行者,这里用了 SpringJUnit4ClassRunner,
//这个类是一个针对 Junit 运行环境的自定义扩展,用来标准化在 Spring 环境中 Junit4.5 的测试用例,例如支持的注释标签的标准化

//@ContextConfiguration 注释标签是 Spring test context 提供的,用来指定 Spring 配置信息的来源,
//支持指定 XML 文件位置或者 Spring 配置类名,这里我们指定classpath下的/springConfig/spring-all.xml为配置文件的位置

//@TransactionConfiguration 注释标签是表明此测试类的事务启用,这样所有的测试方案都会自动的 rollback
//即您不用自己清除自己所做的任何对数据库的变更了

//TestWanziConfig是我们的测试用例,这里事务管理自动运行,当我们执行完成后,所有相关变更会被自动清除

@RunWith(SpringJUnit4ClassRunner.class) 
@ContextConfiguration("/springConfig/spring-all.xml") 
@TransactionConfiguration
public class TestWanziConfig {
    
    @Autowired
    private Wanzi wanzi;
    
    @Test
    public void testConfigurationAnnotion(){
        System.out.println(wanzi.getWanzi());
    }
}

 

 注意:当一个组件没有被交给spring管理的时候,它是不能够引入spring的bean的。