目次へ

2.3 テストデータの登録

それでは、テストクラスを作成しましょう。最初にテストデータをテーブルに投入します。

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

            //現状のバックアップを取得
            QueryDataSet partialDataSet = new QueryDataSet(connection);
            partialDataSet.addTable("ACCEPT_ORDER");
            file=File.createTempFile("accept",".xml");
            FlatXmlDataSet.write(partialDataSet,
                                 new FileOutputStream(file));

            //テストデータを投入する
            IDataSet dataSet
                = new  FlatXmlDataSet( new FileInputStream("accept_order_test_data.xml"));
            DatabaseOperation.CLEAN_INSERT.execute(connection,dataSet);

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

まず、org.dbunit.database.IDatabaseConnectionを取得します。IDatabaseConnectionはDBUnitの各ツールを利用するための、データベースへの接続を提供します。IDatabaseConnectionはインタフェースですので、インタフェースを実装しているorg.dbunit.database.DatabaseConnectionのインスタンスを生成します。コンストラクタの引数はjava.sql.Connectionです。

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

次に、現状のテーブルのバックアップを取得します。

            //現状のバックアップを取得
            QueryDataSet partialDataSet = new QueryDataSet(connection);
            partialDataSet.addTable("ACCEPT_ORDER");
            file=File.createTempFile("accept",".xml");
            FlatXmlDataSet.write(partialDataSet,
        	    			 new FileOutputStream(file));

まず、データセットを表すorg.dbunit.database.QueryDataSetインスタンスを作成します。次に、addTableメソッドを使用し、このデータセットに追加するテーブルを指定します。ここでは、accept_orderテーブルのデータのバックアップを取得し、QueryDataSetに格納しますので、引数に"ACCEPT_ORDER"と指定します。最後に、データの内容を一時ファイルに出力します。ファイルへの出力は、org.dbunit.dataset.xml .FlatXmlDataSetのwriteメソッドを使用します。accept_orderテーブルのデータが、作成した一時ファイルにXML形式で保存されます。

最後に、テストデータをデータベースに登録します。

            //テストデータを投入する
            IDataSet dataSet
                = new  FlatXmlDataSet( new FileInputStream("accept_order_data.xml"));
            DatabaseOperation.CLEAN_INSERT.execute(connection,dataSet);

最初に、accept_order_data.xmlファイルを読み込んで、org.dbunit.dataset.IDataSetを作成しています。IDataSetはDBUnitでテーブルデータを表すものです。次に、実際にテーブルの操作を行います。テーブルの操作はorg.dbunit.operation.DatabaseOperationのexecuteメソッドを使用します。executeメソッドの第一引数はIDatabaseConnectionです。2番目の引数は、IDataSetです。DatabaseOperation.CLEAN_INSERTはDatabaseOperationオブジェクトです。CLEAN_INSERTと指定することにより「テーブルのデータをすべて削除し、IDataSetにあるデータを登録する」という操作を行います。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp