我在下面的测试中遇到测试失败。具体来说,它提示“expect(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)
}
}
最佳答案
session.save(X)的返回类型是一个Serialized,表示新创建的X的标识符,因此它应该返回你的HibernateTransitInfo的id,而不是HibernateTransitInfo本身。
如果我必须猜测,我会说你想做:
expect(mockSession.save(hibernateTransitInfo)).andReturn("1")
但是,我很确定这也会起作用,因为您似乎并不关心返回值:
expect(mockSession.save(hibernateTransitInfo)).andReturn(null)
关于Hibernate+GroovyTestcase : Unable to figure out the error in the code below . 。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8054852/