2016-04-04 3 views
2

В моей Spring загрузки приложения доступ к моему Hibernate сессии, как показано в этом ответе: https://stackoverflow.com/a/33881946/272180Spring Ботинок: Использование Hibernate Session в модульном тесте

Теперь я хочу, чтобы получить доступ к Hibernate сессии в модульном тесте.

Как настроить источник данных и получить доступ к сеансу Hibernate в модульном тесте приложения Spring Boot?

Когда я просто Autowire его, я получаю org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.

и автоматического связывания используя @Service работает безупречно.

Мой класс модульного тестирования выглядит следующим образом атм:

@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 относится к классу с основным методом, который используется для запуска приложения Spring загрузки.

ответ

1

Фактически, решение было таким же простым, как добавление @Transactional к тестовому классу.

После этого я мог бы использовать SessionFactory, как обычно.

Смежные вопросы