DBUnit核心組件
IDatabaseConnection
dbUnit持有的對(duì)數(shù)據(jù)庫(kù)的連接。基于jdbc的,以及基于datasource的都有。
IDataSet:表的集合。
FlatXmlDataSet:每個(gè)XML元素是對(duì)應(yīng)者一個(gè)表行。元素的名字就是表的名字。XML的屬性就對(duì)應(yīng)表的列名。如果需要指定為null值,只需要省略對(duì)應(yīng)的屬性就可以。也就是說,在XML文件中,第一行最好把所有的值都設(shè)置好了。要不然會(huì)有麻煩。(在使用過程當(dāng)中并沒有出現(xiàn)這樣的情況。)
DatabaseDataSet:將整個(gè)數(shù)據(jù)庫(kù)作為一個(gè)DataSet。
QueryDataSet:將數(shù)據(jù)庫(kù)的查詢結(jié)果作為一個(gè)DataSet。
DefaultDataSet:用于編程目的。
XlsDataSet:讀寫EXCEL文件,根據(jù)這個(gè)文件的內(nèi)容來構(gòu)建DataSet。
ReplacementDataSet:Decorator類,可以用一些屬性來替換DataSet中的值。
DatabaseOperation
代表在每個(gè)testcase開始之前以及結(jié)束之后,執(zhí)行的數(shù)據(jù)庫(kù)操作。
DatabaseOperation.UPDATE:更新數(shù)據(jù)庫(kù)。就是利用DataSet中的值去更新數(shù)據(jù)庫(kù),當(dāng)然是假設(shè)原來的數(shù)據(jù)庫(kù)中已經(jīng)存在那些值,要不然會(huì)報(bào)錯(cuò)的。
DatabaseOperation.INSERT:插入數(shù)據(jù)庫(kù)。那么需要保證你插入的時(shí)候,數(shù)據(jù)庫(kù)之間的外健關(guān)聯(lián)關(guān)系,因此,表插入的順序要正確。如果外健關(guān)聯(lián)是程序維護(hù)的話,那么就不會(huì)有這個(gè)問題。MYSQL不會(huì)有這個(gè)問題。
DatabaseOperation.DELETE:刪除。只刪除那些在Dataset中的記錄。
DatabaseOperation.DELETE_ALL:刪除在DataSet中出現(xiàn)的所有的表。
DatabaseOperation.TRUNCATE:截?cái)嘣?/span>DataSet中出現(xiàn)的表。是按照DataSet中表出現(xiàn)的相反順序進(jìn)行截?cái)嗟摹?/span>
DatabaseOperation.REFRESH:把DataSet中的內(nèi)容刷新到數(shù)據(jù)庫(kù)中。DataSet中在數(shù)據(jù)庫(kù)中存在的會(huì)被刷新,在數(shù)據(jù)庫(kù)中不存在的,會(huì)被插入。
DatabaseOperation.CLEAN_INSERT:先執(zhí)行DELETE_ALL,然后執(zhí)行INSERT。清空,然后重新裝入數(shù)據(jù)庫(kù)。
DatabaseOperation.NONE:什么也不做。
TransactionOperation:Operation的decorator類,在Transaction中執(zhí)行這些操作。
IdentityInsertOperation:也是decorator類,是用于專門處理MS SQLSERVER中的ID自動(dòng)生成的問題。IDENTITY。
------君臨天下,舍我其誰
------