DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date now = new Date();
IDatabaseConnection conDbUnit = new DatabaseConnection(jdbc);
ReplacementDataSet dataSet = new ReplacementDataSet(new XlsDataSet(new File(excel)));
dataSet.addReplacementSubstring("[SYSDATE]", df.format(now));
dataSet.addReplacementSubstring("[SYSDATE-1]", df.format(DateUtils.addDays(now, -1)));
dataSet.addReplacementSubstring("[SYSDATE+2]", df.format(DateUtils.addDays(now, +2)));
dataSet.addReplacementSubstring("[SYSDATE+4]", df.format(DateUtils.addDays(now, +4)));
DatabaseOperation.CLEAN_INSERT.execute(conDbUnit, dataSet);
- DbUnit? で、初期データに現在時刻を設定したい
- 定時起動のバッチ処理のテストで、公開期間を過ぎたコンテンツを削除するなど
- たとえば、コンテンツの公開期間が {現時刻-1日、現時刻、現時刻+2日、現時刻+4日} であるデータを登録してから削除バッチを走らせて、{現時刻-1日、現時刻} だけが削除されるかをテストしたい
- DBUnit で、Excel (や XML) をマッピングする IDataSet? を ReplacementDataSet? でデコレートすると、データ中のキーワードを置換することができる
- 上記の例では、Excel 中の "[SYSDATE]" が、現在時刻の ISO 形式 (yyyy-MM-dd HH:mm:ss.SSS) の文字列に置換される
Java#xUNIT