TOPシステム開発> 第2回:DBUnitのインストール (1/3)

DBunitでテストの自動化

DBunitでテストの自動化

第2回:DBUnitのインストール

著者:プロトシステム 広谷 嘉巳

公開日:2008/03/17(月)

DAO層とは

第1回:DBUnitって何?」では、DBUnitの特徴について解説致しました。今回はDBUnitをインストールし、事前準備としてテストデータを作成していきます。

その前にDAO層単体テストについて少し解説しましょう。DAOとはData Access Objectの略で、その名の通りデータベースにアクセスする箇所を指します。またDAO層はインテグレーション層とも呼ばれます。

通常Webアプリケーションは、「プレゼンテーション層」「ビジネスロジック層」「DAO層(インテグレーション層)」の3つの層に分かれます。

プレゼンテーション層とは、ユーザからのオペレーションを受け付けるユーザインターフェース部分です。ビジネスロジック層は、プレゼンテーション層とインテグレーション層の中間に位置する層です。DAO層(インテグレーション層)は、データベースにアクセスする部分となります。

例として、皆さんがキーワードを入力して、ヒットした検索結果を一覧画面として表示する場合で考えてみましょう。

まず、一覧画面からキーワードを受け付けて、入力された情報をビジネスロジック層に受け渡しを行う部分がプレゼンテーション層になります。次に、プレゼンテーション層から渡って来た情報(例では検索キーワード)を分析し、要求された内容に従って必要な情報を得るためDAO層に依頼を行う部分がビジネスロジック層になります。最後に、ビジネスロジック層から渡って来た情報でデータベースを検索し、HITした結果を返す部分、このデータベースにアクセスする部分がDAO層です(図1)。

図1:Webアプリケーションの3つの層

(画像をクリックすると別ウィンドウに拡大図を表示します)

DAO層単体テストについて

DAO層が他の層と決定的に違うのは「データベースにアクセスする」という部分です。データベースにアクセスするということは、データベースに正しくコネクションが張れるか、そもそもSQL文が正しいか(文法的に間違っていないか)など、データベースにアクセスしてみないと分らない点がDAO層の単体テストには存在するということです。

モックを使ったテスト、つまりDAO層プログラムのデータベースにアクセスする箇所をモックオブジェクトで切り離し、残ったロジックのテストを行う場合、データベースにアクセスする箇所のテストは、次のフェーズの結合テストで行います。つまり、単体テストで発見されるべきバグ(障害)は次フェーズへ持ち越しとなってしまいます。

ビジネスロジック層のプログラムの場合、関連するオブジェクトすべてをモックオブジェクトで代用し、テストしていない箇所が残らないようにすることが可能です。ところが、DAO層のプログラムの場合、上記のようにモックオブジェクトで置き換えたテストを行った場合、データベースアクセスでの動作確認が検証できない点が存在する、厄介なテストと言えるでしょう。

では、この厄介なDAO層単体テストを実施するために、早速DBUnitをインストールしてみましょう。次ページで手順を説明します。 次のページ


1   2  3  次のページ


株式会社ビーサンク  広谷 嘉巳
著者プロフィール
株式会社ビーサンク  広谷 嘉巳
Javaを使ったシステム開発に従事し、オブジェクト指向での設計から開発を得意としている。以前はデザインパターンを取り入れたクラス設計やリファクタリングでのコードの体質改善という作業も行っていた。自分の力がまだまだと自覚しており、JavaやUMLの資格も積極的に取得している。仕事の傍らスキー1級やスノボ、テニス、また、野菜ソムリエ取得やフランス料理学校に通うなど、仕事よりも趣味の方に重きを置いているのが玉に瑕。
http://bexank.co.jp/


INDEX
第2回:DBUnitのインストール
DAO層とは
  DBUnitのインストール
  MySQLでテーブル定義