spring-mock + dbutil 用來測試資料庫操作
大概流程:
1.用dbunit建立初始的測試資料。
2.用spring-mock 維護測試過程中的資料會滾,這樣可以保證測試後資料庫保持原狀態。
3.用junit架構測試。
4.用dbunit銷燬初始測試資料。
詳細過程:
建立測試資料:
dbunit採用配置檔案方式,將測試資料放入.xml檔案中,形式非常簡單:
列名1 = 值1
列名2 = 值2
列名3 = 值3
列名4 = 值4
……
……
/>
程式將上面資料載入到資料庫
import org.dbunit.IDatabaseTester;
import org.dbunit.JdbcDatabaseTester;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import org.dbunit.operation.DatabaseOperation;
protected IDataSet getDataSet() throws Exception {
File f = new File(".");
String filePath = f.getAbsolutePath().substring(0,f.getAbsolutePath().length()-1)+"confdbdataSet4mock.xml";
return new FlatXmlDataSet(new FileInputStream(new File(filePath)));
}
初始資料:
databaseTester = new JdbcDatabaseTester("com.mysql.jdbc.Driver",
"jdbc:mysql://127.0.0.1:3306/datetable", "sa", "sa");
IDataSet dataSet = getDataSet();//匯入初始資料
databaseTester.setDataSet(dataSet);
databaseTester.onSetup();
銷燬資料:
databaseTester.setTearDownOperation(DatabaseOperation.DELETE);
databaseTester.onTearDown();
下面看看spring-mock:
1.封裝了junit的testcase:
import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
這個類起到的作用:
a.繼承testcase
b.讀取spring-bean.xml檔案中的事務處理,將監聽所有事務,然後在測試結束後,進行事務會滾,這樣保證在測試過程中產生的資料在結束後不會儲存到資料庫中。
c.override getConfigLocations()這個函式,將spring讀取bean操作進行封裝。
public abstract class SpringDAOTestCase extends AbstractTransactionalDataSourceSpringContextTests {
protected String[] getConfigLocations() {
File f = new File(".");
String filePath ="file:" + f.getAbsolutePath().substring(0,f.getAbsolutePath().length()-1)+"confdbspring-context-db.xml";
return new String[] { filePath };
}
}
public class DaoTest4Mock extends SpringDAOTestCase {
protected void onSetUpInTransaction() throws Exception {
super.onSetUpInTransaction();
/*
dbunit 初始化資料
*/
}
protected void onTearDownInTransaction() {
/*
dbunit 釋放資料
*/
}
public void testInsert() {
………………
}
public void testUpdate() {
………………
}
public void testDelete() {
………………
}
public void testSelect() {
………………
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9879276/viewspace-996348/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle測試資料庫啟用Oracle資料庫
- 來 ! 玩玩PHPUnit的資料庫測試 (上)PHP資料庫
- 資料庫測試專用術語資料庫
- 【操作教程】利用YCSB測試巨杉資料庫效能資料庫
- 大資料測試與 傳統資料庫測試大資料資料庫
- 資料庫測試指南資料庫
- PHP 單元測試與資料庫測試PHP資料庫
- 2.4. 測試資料庫資料庫
- 【MySQL】資料庫效能測試MySql資料庫
- NoSQL資料庫效能測試SQL資料庫
- 將Standby資料庫臨時轉換為主資料庫用於測試資料庫
- 資料庫測試的重要性——永遠不要忘記資料庫測試資料庫
- 測試您的DB2資料庫:用JMeter測量效能DB2資料庫JMeter
- [資料庫]000 - ?Sysbench 資料庫壓力測試工具資料庫
- 使用dbunit測試spring + mybatis的資料庫應用SpringMyBatis資料庫
- PostgreSQL:資料庫連結測試SQL資料庫
- Oracle 閃回資料庫測試Oracle資料庫
- PDM測試資料庫恢復資料庫
- RMAN資料庫還原測試資料庫
- Go 單元測試之Mysql資料庫整合測試GoMySql資料庫
- 用Julia 0.51操作sqlite資料庫SQLite資料庫
- 軟體測試之資料庫測試技術系列七資料庫
- MySQL製作具有千萬條測試資料的測試庫MySql
- 【Mysql】資料庫索引,百萬資料測試索引效果MySql資料庫索引
- 資料庫基準測試工具 sysbench資料庫
- 達夢資料庫之初步測試資料庫
- 測試資料庫是否安裝成功資料庫
- loadrunner 資料庫測試指令碼資料庫指令碼
- 利用jmeter進行資料庫測試JMeter資料庫
- python連線資料庫測試Python資料庫
- 基於RMAN 建立測試資料庫資料庫
- ASM資料庫的一個測試ASM資料庫
- 組態王與Access資料庫通訊--④資料庫測試資料庫
- 建立一個SQL測試資料庫 - 消費者資料庫SQL資料庫
- 試用開源資料庫ApacheDerby資料庫Apache
- 生產資料庫、開發資料庫、測試資料庫中的資料的區分資料庫
- 用node.js操作Firebird資料庫。Node.js資料庫
- MySQL 資料庫生成 10000 條測試資料MySql資料庫