Становится менее болезненно, если вы тестируете свой код напрямую, без openSession().use
Код продукции:
sessionFactory.openSession().use { session ->
codeIwantToTest(session)
}
}
// visible for testing
fun codeIwantToTest(session: Session) {
// your code goes here
}
Тестовый код:
private val session: Session = mock()
@Test
fun `some test`() {
// some set up
codeIwantToTest(session)
// asserts and verify(session)
}
В случае, если вы сомневаетесь, что use
делает свою работу, протестируйте его вот так (но это определенно своего рода паранойя)
@Test
fun `test library function use`() {
session.use { session ->
session.beginTransaction()
}
verify(session).beginTransaction()
verify(session).close()
}