簡體   English   中英

Spring Boot:在單元測試中使用 Hibernate Session

[英]Spring Boot: Use Hibernate Session in a unit test

在我的 Spring Boot 應用程序中,我訪問了我的 Hibernate 會話,如以下答案所示: https : //stackoverflow.com/a/33881946/272180

現在我還想在單元測試中訪問 Hibernate Session。

如何在 Spring Boot 應用程序的單元測試中設置數據源並訪問 Hibernate 會話?

當我簡單地自動裝配它時,我得到org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.

自動裝配和使用@Service完美無缺。

我的單元測試類看起來像這樣的 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是指具有用於運行 Spring Boot 應用程序的 main 方法的類。

事實上,解決方案就像將@Transactional添加到測試類一樣簡單。

之后,我可以像往常一樣使用SessionFactory

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM