DbUnit

EhCacheProvider

しばらく悩んでいたもの。 [WARN] EhCacheProvider - Could not find configuration [hoge.Hoge]; using defaults. 仮説としては、「MavenのforkModeがおかしいんじゃね?」ということで。 複数件のテストを持つテストクラスを実行していると明らかに2件目…

contextのclose()

テストで利用するcontextは今までorg.springframework.context.ApplicationContextを使っていた。 が、org.springframework.context.ConfigurableApplicationContextというものもあるらしい。 こちらだとcontext.close()を使うことができる。

警告いろいろ

先日の日記に書いたもの。 とりあえず、ありったけのconnectionにclose()と=nullを明記してみたら大分減ったようだ。 sessionFactory.close()とかもいれてみたけれど、効果があるのかどうかは良くわからないなぁ。 しかしそれでも何件かまだ残っているのはな…

分からんなぁ

[WARN] ConnectionManager - finalizing with closed connectionというログがテスト実行時にでていた。 ・・・解放漏れというわけではないと思うのだけど、connectionを使うところでnullを明示的に設定しておけばいいのかなぁ。 というかこいつはSpringの中…

Objectからintへの変換

ほんとに? JDK1.4 int iObj = new Integer(expectedITable.getValue(i, "HOGE").toString()).intValue();

キーワード追加

何気にDbUnitがキーワードになかったので追加〜*1。 ・レガシーなDAO設計の人は、connectionを外からインジェクションするようにしたほうがテストしやすい ・O-Rマッピング(うちはspring+hibernate)でもテスト可能(むしろマッピングの検証もできるのでお…

ObjectからLongへの変換

DbUnitでITableからgetValue()したものはObject型であるが、これをLongに変換したいとき。 ・JDK1.4のとき assertEquals( new Long(9999999999L), new Long(( (BigDecimal)table.getValue(0, "HOGE") ).longValue())); ・JDK1.5のとき((これはいわゆるAutoBo…

TypeCastException

Springを経由しないDbUnitのテストを作っていたら。 org.dbunit.dataset.datatype.TypeCastException: Error typecasting value to TIMESTAMP at org.dbunit.dataset.datatype.TimestampDataType.typeCast(TimestampDataType.java:91) at org.dbunit.dataset…

AmbiguousTableNameException

ある日突然テストが動かなくなってしまった。 org.dbunit.database.AmbiguousTableNameException: HOGE_HOGE at org.dbunit.database.DatabaseDataSet.initialize(DatabaseDataSet.java:140) at org.dbunit.database.DatabaseDataSet.getTableMetaData(Datab…

NULLの扱い

NULLを初期データに入れる方法*1 protected IDataSet getDataSet() throws DataSetException, IOException { //XMLで"[NULL]"と記述されていたらnullに置き換える ReplacementDataSet dataSet = new ReplacementDataSet(new FlatXmlDataSet(new FileInputStr…

複合Keyを利用したときのHibernateSystemException()

composite-idで複合Keyを設定してみた。 この時にExceptionが延々とでていた。 org.springframework.orm.hibernate.HibernateSystemException: identifier of an instance of hoge.entity.Users altered from hoge.entity.Users@146b6db[userId=3456789012,u…

Oracle-TimeStampをDbUnitでテストする

OracleでTimeStampを使うとこんなログがでる。 WARNING - USER.REGIST_DATE data type (1111, ‘TIMESTAMP(6)’) not recognized and will be ignored. See FAQ for more information. また、テストデータにTimeStampの日付を追加すると、エラーになる。 org.d…

使ってみよう。・・・その2

前回うまくいったはずが、とんだオチが残っていた。ここ*1を参考にしつつ、まずは継承元を変更。 extends DatabaseTestCase そうすると継承していないメソッドがあるので、追加する。 /* (non-Javadoc) * @see org.dbunit.DatabaseTestCase#getConnection() …

使ってみよう。

課題を残しつつも、どんどん進んでいこう。 まずはぐぐってみる*1。 ここのページ*2はEclipseを入れたときにも参考にしたところだな*3。 1.DBUnitの入手*4 Ver2.1をダウンロード2.解凍して、プロジェクトのlibフォルダに格納する3.各種ドライバのセッ…