Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で経験ありです。海外も短いながら経験あり。デブサミ2017では公募スピーカー1位でした!

テスティングツール作成

DbUnitを利用してDAOの単体テストのためのベースクラスを作成。

  • DbUnitのDatabaseTestCaseを継承
  • getDataSet()メソッドではテストケースの実装クラスと同じディレクトリにあるテストメソッド名と同名のエクセルファイルを読み込む。TestCase#getName()でテストメソッド名が取得できる。
  • getSetUpOperation()メソッドはデフォルトではDatabaseOperation.CLEAN_INSERTとした。InsertのテストがDatabaseOperation.REFRESHだと回帰テストできないから。
  • getTearDownOperation()はDatabaseOperation.NONEにした。setUpで全データを削除するし、DBのデータをテスト完了後も見られるから。
  • アサーション用にエクセルファイルを読み込んでDTOのリストを作るメソッドを作成。引数にClassを渡してインスタンスを作り、BeanUtilsを使ってエクセルファイルから変換したITableの値をセット。
  • 更新系のために、エクセルファイルとDBのテーブルを比較するメソッドを作成。テーブルの全データをエクセルファイルに記入しておく。setUpがCLEAN_INSERTだから、全データで大丈夫と考えた。
// データベースからテーブルのデータを取得する
IDataSet actual = getConnection().createDataSet("テーブル名の配列");
// テーブル名でソートする
expected = new SortedDataSet(expected);