@TestExecutionListeners(value={TransactionalTestExecutionListener.class,SqlScriptsTestExecutionListener.class}) @Transactional public abstract class AbstractTransactionalJUnit4SpringContextTests extends AbstractJUnit4SpringContextTests
AbstractJUnit4SpringContextTests
の抽象トランザクション拡張機能。DataSource
SE Bean および PlatformTransactionManager
Bean が Spring アプリケーションコンテキストで定義されることが期待されます。 このクラスは JdbcTemplate
を公開し、テーブル内の行数カウント、(WHERE 句を使用する可能性があり)、テーブルから削除、テーブルのドロップ、トランザクション内で SQL スクリプトを実行する簡単な方法を提供します。
具象サブクラスは、AbstractJUnit4SpringContextTests
で概説されている同じ要件を満たさなければなりません。
以下の TestExecutionListeners
がデフォルトで構成されています。
ServletTestExecutionListener
DependencyInjectionTestExecutionListener
DirtiesContextTestExecutionListener
TransactionalTestExecutionListener
SqlScriptsTestExecutionListener
このクラスは、拡張の便宜としてのみ機能します。
SpringRunner
、@ContextConfiguration
、@TestExecutionListeners
などを使用して独自のカスタムテストクラスを構成できます。SpringRunner
以外のランナーを使用する場合は、Spring Framework 4.2 以降、SpringClassRule
と SpringMethodRule
を使用して、@RunWith(...)
で選択したランナーを指定できます。注意 : Spring Framework 4.3 以降、このクラスには JUnit 4.12 以上が必要です。
AbstractJUnit4SpringContextTests
, ContextConfiguration
, TestExecutionListeners
, TransactionalTestExecutionListener
, SqlScriptsTestExecutionListener
, Transactional
, Commit
, Rollback
, BeforeTransaction
, AfterTransaction
, JdbcTestUtils
, AbstractTransactionalTestNGSpringContextTests
修飾子と型 | フィールドと説明 |
---|---|
protected JdbcTemplate | jdbcTemplate この基本クラスが管理する JdbcTemplate 。サブクラスで使用できます。 |
applicationContext, logger
コンストラクターと説明 |
---|
AbstractTransactionalJUnit4SpringContextTests() |
修飾子と型 | メソッドと説明 |
---|---|
protected int | countRowsInTable(StringSE tableName) 指定されたテーブルの行をカウントするための簡易メソッド。 |
protected int | countRowsInTableWhere(StringSE tableName, StringSE whereClause) 指定された WHERE 句を使用して、指定されたテーブルの行をカウントする簡易メソッド。 |
protected int | deleteFromTables(StringSE... names) 指定されたテーブルからすべての行を削除するための簡易メソッド。 |
protected int | deleteFromTableWhere(StringSE tableName, StringSE whereClause, ObjectSE... args) 提供された WHERE 句を使用して、指定されたテーブルからすべての行を削除する簡易メソッド。 |
protected void | dropTables(StringSE... names) 指定されたすべてのテーブルを削除するための簡易メソッド。 |
protected void | executeSqlScript(StringSE sqlResourcePath, boolean continueOnError) 指定された SQL スクリプトを実行します。 |
void | setDataSource(DataSourceSE dataSource) 通常、依存性注入によって提供される DataSource を設定します。 |
void | setSqlScriptEncoding(StringSE sqlScriptEncoding) プラットフォームのエンコーディングと異なる場合は、SQL スクリプトのエンコーディングを指定します。 |
setApplicationContext
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
protected final JdbcTemplate jdbcTemplate
JdbcTemplate
。サブクラスで使用できます。public AbstractTransactionalJUnit4SpringContextTests()
@Autowired public void setDataSource(DataSourceSE dataSource)
DataSource
を設定します。 このメソッドは、jdbcTemplate
インスタンス変数もインスタンス化します。
public void setSqlScriptEncoding(StringSE sqlScriptEncoding)
protected int countRowsInTable(StringSE tableName)
tableName
- 行をカウントするテーブル名 JdbcTestUtils.countRowsInTable(org.springframework.jdbc.core.JdbcTemplate, java.lang.String)
protected int countRowsInTableWhere(StringSE tableName, StringSE whereClause)
WHERE
句を使用して、指定されたテーブルの行をカウントする簡易メソッド。 詳細については、JdbcTestUtils.countRowsInTableWhere(org.springframework.jdbc.core.JdbcTemplate, java.lang.String, java.lang.String)
の Javadoc を参照してください。
tableName
- 行をカウントするテーブルの名前 whereClause
- クエリに追加する WHERE
句 WHERE
句に一致するテーブル内の行の数 JdbcTestUtils.countRowsInTableWhere(org.springframework.jdbc.core.JdbcTemplate, java.lang.String, java.lang.String)
protected int deleteFromTables(StringSE... names)
トランザクション以外では注意して使用してください!
names
- 削除するテーブルの名前 JdbcTestUtils.deleteFromTables(org.springframework.jdbc.core.JdbcTemplate, java.lang.String...)
protected int deleteFromTableWhere(StringSE tableName, StringSE whereClause, ObjectSE... args)
WHERE
句を使用して、指定されたテーブルからすべての行を削除する簡易メソッド。トランザクション以外では注意して使用してください!
詳細については、JdbcTestUtils.deleteFromTableWhere(org.springframework.jdbc.core.JdbcTemplate, java.lang.String, java.lang.String, java.lang.Object...)
の Javadoc を参照してください。
tableName
- 行を削除するテーブルの名前 whereClause
- クエリに追加する WHERE
句 args
- クエリにバインドする引数(対応する SQL 型を推測するために PreparedStatement
に残します)。引数値だけでなく、SQL 型とオプションでスケールも示す SqlParameterValue
オブジェクトを含めることもできます。JdbcTestUtils.deleteFromTableWhere(org.springframework.jdbc.core.JdbcTemplate, java.lang.String, java.lang.String, java.lang.Object...)
protected void dropTables(StringSE... names)
トランザクション以外では注意して使用してください!
names
- 削除するテーブルの名前 JdbcTestUtils.dropTables(org.springframework.jdbc.core.JdbcTemplate, java.lang.String...)
protected void executeSqlScript(StringSE sqlResourcePath, boolean continueOnError) throws DataAccessException
トランザクション以外では注意して使用してください!
スクリプトは通常、クラスパスによってロードされます。
ロールバックが予想される場合は、このメソッドを使用して DDL を実行しないでください。
sqlResourcePath
- SQL スクリプトの Spring リソースパス continueOnError
- エラー発生時に例外をスローせずに続行するかどうか DataAccessException
- ステートメントの実行中にエラーが発生した場合 ResourceDatabasePopulator
, setSqlScriptEncoding(java.lang.String)