Class DbAccessTestSupport

java.lang.Object
nablarch.test.event.TestEventDispatcher
nablarch.test.core.db.DbAccessTestSupport

@Published public class DbAccessTestSupport extends TestEventDispatcher
データベースアクセス自動テスト用基底クラス。
データベースアクセスクラスの自動テストを行う場合には、本クラスを継承しテストクラスを作成する。
本クラス以外の基底クラスを継承しなければならない場合は、
本クラスのインスタンスを生成し処理を委譲することで代替可能である。
  • Field Details

    • TRANSACTIONS_KEY

      public static final String TRANSACTIONS_KEY
      データベーストランザクション名を取得する為のキー
      See Also:
    • DB_TRANSACTION_FOR_TEST

      public static final String DB_TRANSACTION_FOR_TEST
      テストクラス用トランザクション名
      See Also:
    • DB_TRANSACTION_FOR_TEST_FW

      public static final String DB_TRANSACTION_FOR_TEST_FW
      テスティングフレームワーク用トランザクション名
      See Also:
  • Constructor Details

    • DbAccessTestSupport

      protected DbAccessTestSupport()
      デフォルトコンストラクタ
      サブクラスからの呼び出しを想定している。
      サブクラス以外から本クラスを使用する場合は、DbAccessTestSupport(Class)を使用すること。
    • DbAccessTestSupport

      public DbAccessTestSupport(Class<?> testClass)
      コンストラクタ
      Parameters:
      testClass - テストクラス(テスト対象クラスではない)
    • DbAccessTestSupport

      public DbAccessTestSupport(TestSupport testSupport)
      コンストラクタ
      Parameters:
      testSupport - テストサポート
  • Method Details

    • beginTransactions

      public void beginTransactions()
      データベースアクセスクラスのテスト用にトランザクションを開始する。
      開始対象のトランザクション名は、設定ファイルより取得する。
      複数のトランザクションを開始する場合には、カンマ(",")区切りで複数のトランザクション名を設定する。
      設定ファイル例:

       dbAccessTest.dbTransactionName = transaction-name1,transaction-name2
       

      デフォルトのトランザクション(nablarch.core.db.connection.DbConnectionContext#getConnection()で取得されるトランザクション)は、
      設定ファイルの記述の有無に関わらず開始される。
      デフォルトのトランザクションのみを使用する場合は、設定ファイルへの記述は不要である。

    • commitTransactions

      public void commitTransactions()
      コミットを実行する。
    • rollbackTransactions

      public void rollbackTransactions()
      トランザクションをロールバックする。
    • endTransactions

      public void endTransactions()
      トランザクションを終了する。
    • setUpDb

      public void setUpDb(String sheetName)
      データベースにデータを投入する。
      Parameters:
      sheetName - シート名
    • setUpDb

      public void setUpDb(String sheetName, String groupId)
      データベースにデータを投入する。
      Parameters:
      sheetName - シート名
      groupId - グループID
    • setThreadContextValues

      public void setThreadContextValues(String sheetName, String id)
      ThreadContextに値を設定する。
      Parameters:
      sheetName - 取得元シート名
      id - 取得元ID
    • assertSqlResultSetEquals

      public void assertSqlResultSetEquals(String message, String sheetName, String id, SqlResultSet actual)
      SqlResultSetの値とExcelファイルに記載したデータの比較を行う。
      検索系テスト実行結果の検索結果確認に使用する。
      Parameters:
      message - 比較失敗時のメッセージ
      sheetName - 期待値を格納したシート名
      id - シート内のデータを特定するためのID
      actual - 実際の値
    • assertSqlRowEquals

      public void assertSqlRowEquals(String message, String sheetName, String id, SqlRow actual)
      SqlRowの値とExcelファイルに記載したデータの比較を行う。
      検索系テスト実行結果の検索結果確認に使用する。
      Parameters:
      message - 比較失敗時のメッセージ
      sheetName - 期待値を格納したシート名
      id - シート内のデータを特定するためのID
      actual - 実際の値
    • getListMap

      public List<Map<String,String>> getListMap(String sheetName, String id)
      List-Map形式でデータを取得する。
      Parameters:
      sheetName - シート名
      id - ID
      Returns:
      List-Map形式のデータ
    • getListParamMap

      public List<Map<String,String[]>> getListParamMap(String sheetName, String id)
      List-Map形式でデータを取得する。
      HTTPパラメータと同じ形式で取得できる(Mapの値がString[]となる)。
      Parameters:
      sheetName - シート名
      id - ID
      Returns:
      List-Map形式のデータ
      See Also:
    • getParamMap

      public Map<String,String[]> getParamMap(String sheetName, String id)
      List-Map形式でデータを取得する。
      HTTPパラメータと同じ形式で取得できる(Mapの値がString[]となる)。
      Parameters:
      sheetName - シート名
      id - ID
      Returns:
      Map形式のデータ
      See Also:
    • assertTableEquals

      public void assertTableEquals(String sheetName)
      データベースのテーブルの値とExcelファイルに記載した値の比較を行う。
      更新系テスト実行後の更新結果確認用に使用する。 テストクラスと同一のパッケージに存在するテストデータファイルから、 期待値を読み取り実際のテーブルと比較を行う。
      Parameters:
      sheetName - 期待値を格納したシート名
    • assertTableEquals

      public void assertTableEquals(String message, String sheetName, boolean failIfNoDataFound) throws IllegalArgumentException
      テーブルの比較を行う。
      テストクラスと同一のパッケージに存在するテストデータファイルから、 期待値を読み取り実際のテーブルと比較を行う。
      Parameters:
      message - 比較失敗時のメッセージ
      sheetName - 期待値を格納したシート名
      failIfNoDataFound - データが存在しない場合に例外とするかどうか
      Throws:
      IllegalArgumentException - 期待値のデータが存在せず、failIfNoDataFoundが真の場合
    • assertTableEquals

      public void assertTableEquals(String sheetName, String groupId) throws IllegalArgumentException
      テーブルの比較を行う。
      テストクラスと同一のパッケージに存在するテストデータファイルから、 期待値を読み取り実際のテーブルと比較を行う。
      Parameters:
      sheetName - 期待値を格納したシート名
      groupId - グループID(オプション)
      Throws:
      IllegalArgumentException - 期待値のデータが存在しない場合
    • assertTableEquals

      public void assertTableEquals(String message, String sheetName, String groupId) throws IllegalArgumentException
      テーブルの比較を行う。
      テストクラスと同一のパッケージに存在するテストデータファイルから、 期待値を読み取り実際のテーブルと比較を行う。
      Parameters:
      message - 比較失敗時のメッセージ
      groupId - グループID(オプション)
      sheetName - 期待値を格納したシート名
      Throws:
      IllegalArgumentException - 期待値のデータが存在しない場合
    • assertTableEquals

      public void assertTableEquals(String message, String sheetName, String groupId, boolean failIfNoDataFound) throws IllegalArgumentException
      テーブルの比較を行う。
      テストクラスと同一のパッケージに存在するテストデータファイルから、 期待値を読み取り実際のテーブルと比較を行う。
      Parameters:
      message - 比較失敗時のメッセージ
      groupId - グループID(オプション)
      sheetName - 期待値を格納したシート名
      failIfNoDataFound - データが存在しない場合に例外とするかどうか
      Throws:
      IllegalArgumentException - 期待値のデータが存在せず、failIfNoDataFoundが真の場合
    • getTestSupport

      public TestSupport getTestSupport()
      テストサポートクラスを返却する。
      Returns:
      テストクラス