dbunitのエラー

データベース処理テスト用のdbunitですが、エクセルからの読み込みがうまくいかずハマる。
ハマりポイントは以下の4つ。

データの間に空白があるとダメ

以下のように、空白のセルがあると「NullPointerException」となる。

no name age
1 tarou 20
2 (空) 20
3 hirosi 35

非表示項目は無視されない

エクセルの列を「非表示」にしても、dbunitからは読み込まれて処理対象となる。
適切な解決法があるかもしれないが、非表示にしていた列をエクセルから削除することで解決。

セルの書式設定に注意

日付は「文字列」書式で入力されていないと、うまく処理されない。
「TypeCastException」が発生して、処理が中断される。
また、数値も「文字列」でなければうまく処理されない場合がある模様。
例えば、「文字列」に設定していなかった列の値が指数表示となり、正しく比較(assert)できなかった。

空白セルに注意

見た目は全項目が空の行を処理対象として読み込み、「NullPointerException」となる。
ググってもほとんど情報がヒットしませんでしたが、「A1」のセルを選択した状態で「Ctrl+End」を押したときに空白のセルが選択される場合、選択されているあたりが空データを持つ行として扱われているようです。
(行の切り貼りをしていると発生する?)
とりあえず処理対象としたい範囲を選択し、新しく作成したシートに貼り付けて、書式を再設定することで正常に処理されるようになりました。


フレームワークのハウツーは情報少ないとつらいですね。