35.3.3. モックデータを利用した統合テスト


各テストの前にデータベースにデータを挿入または消去する必要がある場合は、Seam 統合を DBUnit で使用することができます。 これを行うには SeamTest ではなく DBUnitSeamTest を拡張します。
DBUnit 用のデータセットを与える必要があります。
DBUnit は flat と XML の 2 種類のデータセットファイル形式に対応します。 Seam の DBUnitSeamTest は flat 形式が使用されるものとみなしますので、使用するデータセットもこの形式であることを確認してください。
<dataset>
   
  <ARTIST 
    id="1"
    dtype="Band"
    name="Pink Floyd" />
      
  <DISC
    id="1"
    name="Dark Side of the Moon"
    artist_id="1" />
      
</dataset>
Copy to Clipboard Toggle word wrap
テストクラス内で prepareDBUnitOperations() を無効にしてデータセットを以下のように設定します。
protected void prepareDBUnitOperations() {
  beforeTestOperations.add(
    new DataSetOperation("my/datasets/BaseData.xml")
  );
}
Copy to Clipboard Toggle word wrap
コンストラクタ引数として他にオペレーションが指定されていない場合は、 DataSetOperationDatabaseOperation.CLEAN_INSERT をデフォルトで設定します。 前述の例では BaseData.xml に定義された全テーブルを消去し、 BaseData.xml に宣言されているすべての行を挿入してから各 @Testメソッドが呼び出されます。
テストメソッドの実行後さらにデータ消去が必要な場合は afterTestOperations の一覧にオペレーションを追加します。
TestNG のテストパラメータ datasourceJndiName を設定してデータソースに関する情報を DBUnit に伝える必要があります。
<parameter name="datasourceJndiName" value="java:/seamdiscsDatasource"/>
Copy to Clipboard Toggle word wrap
DBUnitSeamTest は MySQL および HSQL のいずれにも対応します。 使用するデータベースを伝える必要があります。 これをしないとデフォルトでは HSQL に設定されます。
 <parameter name="database" value="MYSQL" />
Copy to Clipboard Toggle word wrap
また、 バイナリデータをテストデータセットに挿入することもできます (これは Window では未検証 ですので注意してください)。クラスパス上にあるリソースの場所を DBUnitSeamTest に伝えます。
<parameter name="binaryDir" value="images/" />
Copy to Clipboard Toggle word wrap
HSQL を使用するためバイナリのインポートがない場合は、これらのパラメータはいずれも設定する必要はありません。 ただし、 テスト設定で datasourceJndiName を指定しない限り、 テスト実行の前に setDatabaseJndiName() を呼び出す必要があります。HSQL、MySQL のいずれも使用していない場合は、いくつかのメソッドを無効にする必要があります。詳細は DBUnitSeamTest の Javadoc を参照してください。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat