Spring學習總結10(測試)

mock

mock測試:就是在測試過程中,對於某些不容易構造或者 不容易獲取的對象,用一個虛擬的對象來創建以便測試的測試方法。

mock對象:這個虛擬的對象就是mock對象。mock對象就是真實對象在調試期間的代替品。

在Java陣營中主要的Mock測試工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker

 

Test Fixture

運行被測軟件所需要的一切東西。這個“東西”不單只是數據,同時還包括對被測軟件的準備。

 

Spring2.5版本和JDK5.0環境下,提供了測試框架TestContext

使用TestContext所帶來的好處:

1.跨越各個測試案例執行期的Spring IOC容器緩存(不用每進行一次測試就初始化一次容器)

2.測試fixture的依賴注入

3.便利的事務管理(會默認在測試完畢後回滾測試中對數據庫所作的操作)

4.提供了特有的Spring支持類

 

測試框架TestContext是與JUnit4.4相結合的,是輔助JUnit更好的進行測試。

 

主要版本需要Spring2.5與JUnit4.4 JUnit高於4.4版本的可以不好使。

 

需要導入spring-framework-2.5.6/dist/modules/下的spring-test.jar包。

 

@ContextConfiguration

標註在測試類上,用於告訴測試類在哪個路徑下加載Spring的初始化Bean

@ContextConfiguration(locations={“xx/yy/beans1.xml”,"xx/yy/beans2.xml”})   路徑是相對於WEB-INF的

如果配置文件在classpath下 則寫爲:

@ContextConfiguration(locations={"classpath:beans.xml"})

 

@Resource

標註的對象將會從Spring容器中注入

 

@Before

將會在@Test方法之前執行,用於初始化測試環境,與@Test方法運行在一個事務中

 

@After

將會在@Test方法之後執行,與@Test方法運行在一個事務中

 

@NotTransactional

標註的方法不將工作於事務環境下。

 

繼承的父類AbstractTransactionalJUnit4SpringContextTests 中提供了simpleJdbcTemplate對象,可以方便的進行簡單數據庫操作,可用於插入測試數據等。

simpleJdbcTemplate只支持JDK5.0或以上版本。

同時AbstractTransactionalJUnit4SpringContextTests 也提供了一些便捷方法來進行數據庫訪問

protected int countRowsInTable(String tableName) :計算數據表的記錄數。
protected int deleteFromTables(String... names):刪除表中的記錄,可以指定多張表。
protected void executeSqlScript(String sqlResourcePath, boolean continueOnError):執行 SQL 腳本文件,在腳本文件中,其格式必須一個 SQL 語句一行。

 


 

示例代碼

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章