- 2.1. 参照メソッドのテスト
- 2.2. テストデータの作成
- 2.3. テストデータの登録
- 2.4. テストメソッドの実装
- 2.5. テストデータの後片付け
- 2.6. DatabaseOperation
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にあるデータを登録する」という操作を行います。

