S2Daoの結果をS2Unitでテスト

メモ。

RELNOアノテーションのプロパティ名でgroupを指定すると…

S2DaoでN:1マッピングをするとき、1側のBeansに「group_RELNO, setGroup(), getGroup()」のようにgroupプロパティを指定したら、

org.seasar.framework.exception.SQLRuntimeException: [ESSR0071]SQLで例外が発生しました。理由はjava.sql.SQLException: Unexpected token GROUP, requires ON in statement [省略
	at org.seasar.framework.util.ConnectionUtil.prepareStatement(ConnectionUtil.java:38)
〜(省略)〜
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.sql.SQLException: Unexpected token GROUP, requires ON in statement [省略

と怒られた。「hogeGroup_RELNO, setHogeGroup(), getHogeGroup()」のようにプロパティ名を一通り変更すると普通に動く。
groupが予約語なのか?Hsqldb。

空シートは削除

readXls()使うとき、Excelファイル上で余計なシートは削除する必要がある。
デフォルトで作成される空シートがあるとNullPoinerExceptionが発生してしまう。

DataSetでassertBeanEquals()をするときはS2DaoTestCaseで

N:1マッピングのときにS2UnitでreadXls()を使うとき、N側のカラム名をhoge_0のようにExcelに書くと、

org.seasar.extension.jdbc.ColumnNotFoundRuntimeException: [ESSR0068]テーブル(Bean)のカラム(hoge_0)が見つかりません
	at org.seasar.extension.dataset.impl.DataTableImpl.getColumn(DataTableImpl.java:128)
〜(省略)〜

となってしまう。どうやってテストすりゃいいんじゃい。
と思ってたら自己解決。
S2TestCaseじゃなくて、S2DaoTestCaseをextendsしなきゃいけなかったのね。

BeanListでassertするときはassertBeanListEquals()メソッドで

findAll()みたいなBeanListを返すメソッドのテストで、期待値は3つなのに1つしかないと言い張る。
ソースを調べて気がついた。assertBeanEquals()で比較してたのが原因。
BeanListの場合はassertBeanListEquals()なのでした…。