zoukankan      html  css  js  c++  java
  • spring学习(二十一)--spring单元测试

    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的。

    个人理解,如有错误,欢迎指正!
  • 相关阅读:
    C++——多态
    C++——继承
    PAT1002 A+B for Polynomials
    PAT1001-A+B Format
    C++——运算符重载(下)
    图像处理与Python实现(岳亚伟)笔记二——彩色图像处理
    图像处理与Python实现(岳亚伟)笔记一
    827. Making A Large Island
    995. Minimum Number of K Consecutive Bit Flips (2021/2/18每日一题)
    685. Redundant Connection II (LeetCode 刷题笔记)
  • 原文地址:https://www.cnblogs.com/gllegolas/p/11809333.html
Copyright © 2011-2022 走看看