Spring 引导:在单元测试中使用 Hibernate Session
Spring Boot: Use Hibernate Session in a unit test
在我的 Spring 引导应用程序中,我访问我的 Hibernate 会话,如以下答案所示:
现在我也想在单元测试中访问Hibernate Session。
如何在 Spring 引导应用程序的单元测试中设置数据源并访问 Hibernate 会话?
当我简单地自动装配它时,我得到 org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.
自动装配和使用 @Service
工作完美。
我的单元测试 class 看起来像这样 atm:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = App.class)
@WebIntegrationTest
public class WebTest {
@Autowired
private SessionFactory sessionFactory;
@Autowired
private UserService userService;
@Test
public void testService() {
final List<User> users = userService.getUsers();
// do something with users
// ...
}
}
App.class
指的是class和运行启动应用程序Spring的主要方法。
事实上,解决方案就像在测试中添加 @Transactional
一样简单-class。
之后我可以像往常一样使用 SessionFactory
。
在我的 Spring 引导应用程序中,我访问我的 Hibernate 会话,如以下答案所示:
现在我也想在单元测试中访问Hibernate Session。
如何在 Spring 引导应用程序的单元测试中设置数据源并访问 Hibernate 会话?
当我简单地自动装配它时,我得到 org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.
自动装配和使用 @Service
工作完美。
我的单元测试 class 看起来像这样 atm:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = App.class)
@WebIntegrationTest
public class WebTest {
@Autowired
private SessionFactory sessionFactory;
@Autowired
private UserService userService;
@Test
public void testService() {
final List<User> users = userService.getUsers();
// do something with users
// ...
}
}
App.class
指的是class和运行启动应用程序Spring的主要方法。
事实上,解决方案就像在测试中添加 @Transactional
一样简单-class。
之后我可以像往常一样使用 SessionFactory
。