【发布时间】:2013-03-07 13:34:14
【问题描述】:
我想为我的项目(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 将为空。如果我使用@Before 方法而不是@BeforeClass,它将起作用。但我认为这不是一个好的解决方案,因为这个方法会在每个 @Test 方法之前运行,我不需要它。 所以我的问题很简单。当您需要在数据库中创建测试数据时,哪种解决方案最适合这种情况?
【问题讨论】: