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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM