私は単体テストにHSQLDBを使用しています.1つのAbstractクラスMyAbstractTestBaseをすべて拡張するTestクラスがたくさんあります。
class abstract MyAbstractTestBase
{
static
{
setUpDBTables();
}
public static void setUpDBTables()
{
context = new ClassPathXmlApplicationContext(new String[]{
"file:spring-configuration/unit-testing-config.xml"
});
//InputStream inputStream = getClass().getClassLoader().getResourceAsStream("db/MY_TABLE.sql");
DataSource dataSource = (DataSource)context.getBean("MyDataSource");
namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
}
このアプローチの主な問題は、Spring によって作成された entityManager です。
@PersistenceContext(unitName = MyConstants.ENTITY_MANAGER_FACTORY_UNIT_NAME)
protected EntityManager entityManager;
データを保持せず、例外もスローされませんが、「選択」を使用してデータを読み取ろうとすると機能します。
これが私の質問です。単体テストを開始する前にテーブルを作成するにはどうすればよいですか? 私のentityManagerが期待どおりに動作するように。
また、例外がスローされなかったにもかかわらず、entityManager がレコードを保持しなかったのはなぜですか。