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 語句一行。
示例代碼