昨日のエントリで、Arquillianを利用してDBUnitのようにdatasetのxmlを定義したり、Unitilsの@DataSetアノテーションでデータを読むみたいなことが簡単にできれば…なんて書いていたのですが、Arquillian Persistence Extensionというものがあって、まさにそのようなものみたいです(^^;すごいなぁ。
試してみた所、簡単なサンプルは無事に動きました。詳細な手順は別途まとめるとして、こんな感じのことができました、というメモ。
テスト用DBデータの準備
DB使ったテストするためにレコードデータをxmlファイルに定義します。
以下ではサンプルとしてIDと名前だけある名簿テーブルを定義してます。
xml version="1.0" encoding="UTF-8"
<dataset>
<mymeibo id = "0001" name = "horikita" />
<mymeibo id = "0002" name = "makimaki" />
</dataset>
テストコード
以下みたいなのを書いただけです。
idが0002のEntity取得したらmakimakiが入ってる?、レコードは2行取れた?という確認だけ。
@Test
@UsingDataSet("dataset.xml")
public void tryDataSetTest(){
MyMeibo myMeibo = meibo.find(0002);
assertThat(myMeibo.getName(), is("makimaki"));
assertThat(meibo.count(), is(2));
}
実行結果
何か設定したわけでもないけど、終わった後にレコードも削除されてるし*1!
面白そう、というか、リアルにこれを使ってみようかと思い始めたので暫く触っていきたいと思います。