私は自分のプロジェクト (spring + hibernate) のテストを書きたいと思っています。テストにはインメモリ データベース (hsqldb) を使用します。そして、データベースにデータを入力する必要があります。私にとっては、 @BeforeClass メソッドを使用するのが最善の方法です。このようなもの
@Transactional
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-applicationContext.xml")
public class UsersControllerTest {
@Autowired
private static SessionFactory sessionFactory;
@BeforeClass
public static void setUpBeforeClass() {
User u = new User();
u.setLogin("test_login");
u.setPassword("test_password");
u.setName("test_name");
Session session = sessionFactory.getCurrentSession();
session.save(u);
}
しかし、この場合 sessionFactory が null になるため、これを行うことはできません。@BeforeClass の代わりに @Before メソッドを使用すると機能します。しかし、このメソッドはすべての @Test メソッドの前に実行され、必要がないため、これは良い解決策ではないと思います。だから私の質問は簡単です。データベースにテスト データを作成する必要がある場合、この状況に最適なソリューションはどれですか?