spring-test使用介绍

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

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

 

项目目录结构以下:spring

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

2、编写测试类oracle

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

@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 maven

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

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

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

3、测试类中获取IOC容器spa

  在AbstractJUnit4springcontextTests 中有定义applicationContext变量,就是spring的全局IOC容器,经过它能够获取在xml中定义的beancode

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

public Object getBean(String beanName) {
    return applicationContext.getBean(beanName);
}

protected ApplicationContext getContext() {
    return applicationContext;
}
相关文章
相关标签/搜索