- PR -

DbUnitによるデータベースアクセステストの実際

1
投稿者投稿内容
おかもと
大ベテラン
会議室デビュー日: 2003/06/08
投稿数: 182
投稿日時: 2005-02-28 15:48
Java開発の中でデータベースアクセス処理のテストに
DbUnitを採用しようとしています。
書籍やネット上の紹介記事、DbUnit自身のドキュメントを参照すると、
更新系の処理結果を検証するのに、期待値を記述したXMLと比較している
ようです。以下にDbUnitのドキュメントに記載されている例を抜粋します。

コード:
    public void testMe() throws Exception
    {
        // Execute the tested code that modify the database here
        ...


        // Fetch database data after executing your code
        IDataSet databaseDataSet = getConnection().createDataSet();
        ITable actualTable = databaseDataSet.getTable("TABLE_NAME");

        // Load expected data from an XML dataset
        IDataSet expectedDataSet = new FlatXmlDataSet(new File("expectedDataSet.xml"));
        ITable expectedTable = expectedDataSet.getTable("TABLE_NAME");

        // Assert actual database table match expected table
        Assertion.assertEquals(expectedTable, expectedTable);
    }



しかし、この方法だと更新系の処理ごとにXMLファイルを作成することになり
ファイルの管理が煩雑になり現実的では無いような気がします。

そこで質問なのですが、実際の開発現場ではドキュメントにあるような
方法を採用しているのでしょうか?それとも他の方法を採用している
のでしょうか?

私が今考えているのは、テストメソッドの中で、期待される結果を
取得するSQLをJDBCで実行し、取得した内容とassertEqualsで
比較する方法です。ただし、これもテストコードとしては
仰々しいような気もします。
1

スキルアップ/キャリアアップ(JOB@IT)