Hibernate+GroovyTestcase : Unable to figure out the error in the code below . 。

标签 hibernate groovy easymock

我在下面的测试中遇到测试失败。具体来说,它提示“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/

相关文章:

java - Hibernate 多对多映射

java - 如何映射双重关系 JPA?

java - Hibernate 错误或不正确的映射(这可能表明 Hibernate 中存在错误 - 错误)?

java - 551 输出文件错误

unit-testing - 干燥 EasyMock 测试

java - 如何在指定时区的 hibernate 中获取记录?

groovy - Gradle 构建不包括 source/src groovy

java - 在“放心”中获取请求时出现错误

java - 重新实现返回原始类型的方法

java - EasyMock 和 Annotations 以及 2 个相同类型的依赖项