仕事で使うので、調べました。XMLでやってもいいけど、やっぱりExcelの方がなじみがあるからね。
DBUnits・・・データベースを使用したロジックの単体テストを支援するツール。
■Excelファイルにエクスポート
public class XLSExporter {
public static void main(String[] args) throws Exception {
DatabaseConnection conn = new DatabaseConnection(
ConnectionManager.getConnection(), "RD");
IDataSet dataset = conn.createDataSet();
XlsDataSet.write(dataset, new FileOutputStream("data/export.xls"));
}
}
XlsDataSet.writeメソッドを使うことで書き出すことができる。
■Excelから読み込んで、結果と比較
protected void setUp() throws Exception {
// ①テストデータを投入する
IDataSet dataSet = new XlsDataSet(
new FileInputStream("data/export.xls"));
DatabaseOperation.CLEAN_INSERT.execute(conn, dataSet);
}
public void testステータス更新() throws Exception {
// ②更新処理実行
dao.updateStatus("20070719L19780823", "akokubu");
// ③DBから実際のデータの取得
IDataSet databaseDataSet = conn.createDataSet();
ITable actualTable = databaseDataSet.getTable("STATUS_TBL");
// Tempディレクトリにバックアップ
File file = File.createTempFile("STATUS_TBL", ".xls");
XlsDataSet.write(databaseDataSet, new FileOutputStream(file));
// ④期待値データの取得
IDataSet expectedDataSet = new XlsDataSet(
new FileInputStream("/StatusDaoTest/expect_updateStatus.xls"));
ITable expectedTable = expectedDataSet.getTable("STATUS_TBL");
// ⑤期待値データと実際のデータの比較
Assertion.assertEquals(expectedTable, actualTable);
}
①データセットには、XlsDataSetを使いテストデータ投入する。
②処理を実行。
③DBから更新後のデータを取得する。
④期待値データをExcelから読み込む。
⑤DBから取得したデータと期待値データを比べる。
スポンサーサイト