用DBUnit寫單元測試

目的搞清楚了就最容易做事了。嘿嘿。如果不知DBUnit是用來做什麼的,就像個無頭蒼蠅,晃了半天都不清楚在看些什麼。
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來寫測試代碼。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章