您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > DBunit
DBUnit入門
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/12/18 10:39:45 ] 推薦標簽:

3 實裝測試方法,詳細見代碼注釋。

*檢索類方法,可以利用assertEquals()方法,拿表的字段進行比較。

// findStudent
public void testFindStudent() throws Exception{
//執(zhí)行findStudent方法
StudentOpe studentOpe=new StudentOpe();
Student result = studentOpe.findStudent("0001");

//預想結果和實際結果的比較
assertEquals("翁仔",result.getName());
assertEquals("m",result.getSex());
assertEquals("1979-12-31",result.getBirthDay());
}


*更新,添加,刪除等方法,可以利用Assertion.assertEquals()方法,拿表的整體來比較。

public void testAddStudent() throws Exception{
//執(zhí)行addStudent方法
StudentOpe studentOpe=new StudentOpe();
//被追加的記錄
Student newStudent = new Student("0088","王耳朵","m","1982-01-01");
//執(zhí)行追加方法
Student result = studentOpe.addStudent(newStudent);

//預想結果和實際結果的比較
IDatabaseConnection connection=null;

try{

//預期結果取得
IDataSet expectedDataSet = new FlatXmlDataSet(new FileInputStream("student_exp.xml"));
ITable expectedTable = expectedDataSet.getTable("student");

//實際結果取得
Connection conn=getConnection();
connection =new DatabaseConnection(conn);

IDataSet databaseDataSet = connection.createDataSet();
ITable actualTable = databaseDataSet.getTable("student");

//比較
Assertion.assertEquals(expectedTable, actualTable);

}finally{
if(connection!=null) connection.close();
}
}


*如果在整體比較表的時候,有個別字段不需要比較,可以用DefaultColumnFilter.excludedColumnsTable()方法,
將指定字段給排除在比較范圍之外。比如上例中不需要比較birthday這個字段的話,那么可以如下代碼所示進行處理:

ITable filteredExpectedTable = DefaultColumnFilter.excludedColumnsTable(expectedTable, new String[]{"birthday"});
ITable filteredActualTable = DefaultColumnFilter.excludedColumnsTable(actualTable,new String[]{"birthday"});
Assertion.assertEquals(filteredExpectedTable, filteredActualTable);


4 在tearDown()方法里邊,把數(shù)據(jù)庫還原到測試前狀態(tài)

protected void tearDown() throws Exception{

IDatabaseConnection connection =null;
try{
super.tearDown();
Connection conn=getConnection();
connection =new DatabaseConnection(conn);

IDataSet dataSet = new FlatXmlDataSet(file);
DatabaseOperation.CLEAN_INSERT.execute(connection,dataSet);

}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(connection!=null) connection.close();
}catch(SQLException e){}
}

}

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd