MobsterUtilitiesPlugin1.0.1をリリースしました。
小粋なEclipseプラグイン、MobsterUtilitiesPluginです。
http://www.mobster.jp/wiki/view.jspa?pid=MobsterUtilitiesPlugin
DBUnit Testing Tips2
DBUnit使ってテストを書いています。
エクセルでテストデータを用意しているのですが、
結構トラブルに見舞われたりします。
今の作業の手順はこんな感じです。
1.OracleにAcesssで接続して、テストデータを設定。 データ入力はM$のAccessが楽です。 データベースは他の開発者と並列でテストできるように、 自分専用のスキーマを用意しています。 2.DbUnitのエクスポート機能で、テストデータをエクセルにエクスポート。 3.テストデータを加工 エクスポートで出力したデータを加工すれば、 エクセルで1から手入力でデータ作るより、 クリーンインサート時にトラブルが起きにくいようです。 エクセルでセルの書式設定などはやらないほうが無難。 4.テストコードを書く。 5.実装コードを書く。
また、マスターデータは親クラスでテストデータとは別にクリーンインサートしています。トランザクション的なデータは、テストごとに必要に応じて用意するという作戦です。
実践J2EEシステムデザイン読書会
という名のジャイアンリサイタルを明日開きます。
僕はIoCコンテナの話をする予定です。
福岡近郊で、興味をありな方はお気軽にご参加ください。
詳細はこちら、http://www.mobster.jp/wiki/view.jspa?pid=MobsterParty
Deep Side of Java〜Java 言語再入門
メモ、中田さんより。
DBUnit Testing Tips3 ITable型のデータをカラム名で並び替える方法
今日はこれではまりました。
取得したデータや期待値の並び順が不定だとテストコードは書けません。
DatabaseConnection.createDataSetメソッドなどでは並び順が不定の状態で、データが返ります。
ITableをSortedTableクラスでラップすれば、並び替えたデータを取得できます。
IDataSet dataSet = getConnection().createDataSet(new String {"TABLE_A"});
// 並び替え前のテーブルデータ
ITable table = dataSet.getTable("TABLE_A");
// 並び順を指定。COLUMN_AとCOLUMN_Bの値を使ってデータを並び替える
ITable sortedTable = new SortedTable(table, new String{"COLUMN_A", "COLUMN_B"});
//カラムCの値をチェック、並び順が予想できてるぜ
assertEquals("1番目", sortedTable.getValue(0, "COLUMN_C"));
assertEquals("2番目", sortedTable.getValue(1, "COLUMN_C"));
assertEquals("3番目", sortedTable.getValue(2, "COLUMN_C"));