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;
}
相關文章
相關標籤/搜索