• spring-test使用介绍


    一、首先引入spring的jar文件到项目中,我采用maven管理项目依赖的jar包:

    <properties>
        <spring.version>4.0.0.RELEASE</spring.version>
    </properties>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
    </dependency>    

    项目目录结构如下:

    还需要在项目中引入junit4的jar包

    二、编写测试类

      上图结构中的JDBCTransactionTest.java为测试类其部分代码如下:

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration(locations = "classpath:applicationContext_jdbc_transaction.xml")
    public class JDBCTransactionTest extends AbstractJUnit4SpringContextTests {
        @Test
        public void transactionTest() throws ClassNotFoundException,
                InstantiationException, IllegalAccessException, SQLException {
            Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
            String url = "jdbc:oracle:thin:@localhost:1521:xxxxxxxx";
            String user = "xxxxxxx";
            String password = "xxxx";
            Connection conn = null;
            Statement statement = null;
            try {
                conn = DriverManager.getConnection(url, user, password);
                conn.setAutoCommit(false);
                statement = conn.createStatement();
                String sql = "insert into user_base values(1,'james','aaa',2,12)";
                statement.executeUpdate(sql);
                conn.commit();
    
            } catch (SQLException e) {
                if (conn != null)
                    conn.rollback();
                conn.close();
                statement.close();
            }
        }
    }

      要求:该类必须继承自AbstractJUnit4springcontextTests 

         然后在其中编写方法,并在方法上加注释:@Test

           在类的上部添加注释:
            @RunWith(SpringJUnit4ClassRunner.class)
              @ContextConfiguration(locations = "classpath:applicationContext.xml")

    这样便可以通过配置spring配置文件的位置进行测试开发了。

    三、测试类中获取IOC容器

      在AbstractJUnit4springcontextTests 中有定义applicationContext变量,就是spring的全局IOC容器,通过它可以获取在xml中定义的bean

      为了通过名字方便获取自定义的bean,我们可以将该applicationContext封装到方法内,通过给定的bean的名称向外部提供自定义的bean,也可以提供给外部applicationContext:

    public Object getBean(String beanName) {
        return applicationContext.getBean(beanName);
    }
    
    protected ApplicationContext getContext() {
        return applicationContext;
    }
  • 相关阅读:
    Arthas线上问题排查
    如何快速增加pdf书签,解除pdf限制
    数组指针——指向数组的指针(通过指针控制数组)
    指针和数组直接对应关系之如何记忆
    C/C++语言中指针数组和数组指针比较区别
    int最大值+1为什么是-2147483648最小值-1为什么是2147483647
    电脑进行二进制加减运算方法
    C/C++语言中的函数参数传参三种对比
    Python基于VS2013 开发环境搭建 Hello World 10分钟搞定
    算法的复杂度包括时间复杂度和空间复杂度分别如何计算?
  • 原文地址:https://www.cnblogs.com/brolanda/p/4299699.html
Copyright © 2020-2023  润新知