DbUnit+Excelではまったメモ

はまったメモ1:DbUnit2.4.7 + Apache POI3.6 ではExcelファイルインポート・エクスポート不可

原因

Apache POIの最新バージョンでは、DbUnit2.4.7で使用するメソッドが削除されていたため、動作しなかった。

Springベースのユニットテストに DbUnitを組み合わせる方法 や、 Java/Ant/DBをExcelにExportするAntタスクを参考に、Apache POI (いつの間にかJakarta POIから名称変更…) でExcelファイルエクスポート・インポートを試してみた。
しかし、Excelファイルのエクスポート時にNoSuchMethodExceptionが発生した。

調べるうちに見つけたのがこのサイト。
Old versions of POI available for download?

We were using for years the setEncoding method in HSSFCell, as instructed in this Javadoc here:
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html#setCellValue(org.apache.poi.ss.usermodel.RichTextString)
But this setEncoding method mysteriously disappeared in recent POI versions.
要は、deprecatedであったメソッドが最新のPOIでは削除されており、そのメソッドDbUnitで使用しているため動作しないようであった。

対処

試しに、POIの少し古いバージョン poi-bin-3.2-FINAL-20081019.zip のjarファイルに入れ替え、実行したらうまくいった。

2014/12/14追記
POIのコードを修正して対処している方の記事を見つけました。
DbUnitをApache POI3.8互換にする - Splash of waters - 2nd. Season

はまったメモ2:Excelファイルを編集しても内容が反映されない

DbUnitExcelファイル読み込んでDB内容と比較しようとしたがうまくいかない。Excelファイル編集してるのに内容反映されないなあと思ったら、編集:src配下、読込:bin配下だった。クリーンしてビルドで一件落着。よくあるパターン過ぎて泣いた。