1.dbunit原理:
Dbunit其原理,是在每個測試方法之前后,通過增刪一些固定的記錄,保持了數據庫的固定狀態,由此,我們可以在每個測試方法中自由地增刪記錄,而不用擔心會影響到別的測試方法。DBUnit的設計理念是在測試之前,備份數據庫,然后給對象數據庫植入我們需要的準備數據,后,在測試完畢后,讀入備份數據庫,回溯到測試前的狀態。
2. POM文件中加入如下一段配置:
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.4.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.4.3</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.3.0</version>
</dependency>
3.selenium與dbunit結合進行與數據庫相關的測試,主要實現過程包括創建與數據庫操作相關的測試腳本,創建測試用例的測試腳本和創建測試數據。
創建與數據庫操作相關的測試腳本過程如下:
(1)用來取得dbunit用的數據庫連接。
(2)用來在運行測試腳本前,設置數據庫的初始數據。
(3)用來在測試用例運行后,設置數據庫的測試后的數據。
(4)用來在斷言測試用例執行后,斷言測試實際數據和測試預期數據,一般判斷測試用例的測試正確性。
/**
*取得DbUnit用的數據庫連接數據庫連接
*/
public IDatabaseConnection getConnection() throws Exception {
Class driverClass = Class.forName("oracle.jdbc.driver.OracleDriver");
Connection jdbcConnection = DriverManager.getConnection("jdbcracle:thin192.168.71.52:1521:JRESSTUDIO",
"jrestester", "jrestester");
return new DatabaseConnection(jdbcConnection,"JRESTESTER");
}
/**
*測試前設置數據庫狀態以及裝載初始數據
*/
public void dbActionBeforeTest(String fileName) throws Exception {
dataSet = new FlatXmlDataSet(new FileInputStream(this.setFilePath(fileName)));
//清空數據庫表,然后裝載初始數據到數據庫表中
DatabaseOperation.CLEAN_INSERT.execute(this.getConnection(), dataSet);
}
/**
*測試后設置數據庫狀態
*/
public void dbActionAfterTest() throws Exception {
//刪除表中的所有數據
DatabaseOperation.DELETE_ALL.execute(this.getConnection(), dataSet);
}
/**
*斷言測試實際數據和測試期望數據
*/