DBUnit的主要功能是可以爲你的數據庫測試提供穩定及一致的數據。DBUnit通過預先在XML文件設置數據值、使用Sql查詢另外的表格爲測試提供數據等等方式來達到這個目的,而通常我們只需要使用XML文件預置數據的方法即可。
使用DBUnit來寫單元測試至少有兩個方法,一是直接繼承
DatabaseTestCase,實現該類的兩個方法。DBUnit在測試運行中會自動更新和保持數據庫的信息一致和完整。二是像往常那樣繼承一般的TestCase類,在SetUp方法中自已操作數據庫,使之達到平衡。如:
protected void setUp() throws Exception
{
IDatabaseConnection connection =
new DatabaseDataSourceConnection(new InitialContext(),
"java:/DefaultDS");
IDataSet dataSet = new FlatXmlDataSet(
this.getClass().getResource(
"/junitbook/database/data.xml"));
try
{
DatabaseOperation.CLEAN_INSERT.execute(connection,
dataSet);//先刪除數據庫原有的數據再把XML文件裏的數據保存到數據庫,
達到每次測試數據都相同的目的。
}
finally
{
connection.close();
}
}
PS:DBUnit應該儘量運用在集成測試下,如果是一般的業務邏輯操作測試,儘可能使用MockObject來寫測試代碼。