#hibernate #groovy #easymock
#переход в спящий режим #groovy #easymock
Вопрос:
Я получаю сбой теста в приведенном ниже тесте. В частности, он жалуется на «ожидать (mockSession.save(hibernateTransitInfo)).andReturn(hibernateTransitInfo)» и жалуется на «несовместимый возвращаемый тип»
Тестовый код
void testCreateTransitFileInfo()
{
HibernateTransitInfo hibernateTransitInfo =
new HibernateTransitInfo(relationshipId: "12345")
expect(mockSessionFactory.currentSession).andReturn(mockSession)
expect(mockSession.save(hibernateTransitInfo)).andReturn(hibernateTransitInfo)
replayAll()
transitFileDao.createHibernateTransitInfo(hibernateTransitInfo)
verifyAll()
}
Actual DaoImplementation
@Repository("transitFileDao")
class TransitFileDaoImpl implements TransitFileDao{
@Autowired
SessionFactory sessionFactory
Session getCurrentSession()
{
return sessionFactory.currentSession
}
void createHibernateTransitInfo(HibernateTransitInfo hibernateTransitInfo)
{
currentSession.save(hibernateTransitInfo)
}
}
Ответ №1:
Возвращаемый тип session.save(X) является сериализуемым, представляющим идентификатор вновь созданного X, поэтому он должен возвращать идентификатор вашего HibernateTransitInfo, а не самого HibernateTransitInfo.
Если бы мне пришлось угадывать, я бы сказал, что вы хотите сделать:
expect(mockSession.save(hibernateTransitInfo)).andReturn("1")
Тем не менее, я почти уверен, что это также сработало бы, поскольку вы, похоже, не заботитесь о возвращаемом значении:
expect(mockSession.save(hibernateTransitInfo)).andReturn(null)