【问题标题】:Hibernate+GroovyTestcase: Unable to figure out the error in the code below ..Hibernate+GroovyTestcase:无法找出下面代码中的错误..
【发布时间】:2011-11-08 17:49:30
【问题描述】:

我在下面的测试中测试失败。具体来说,它抱怨“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)
     }
}

【问题讨论】:

    标签: hibernate groovy easymock


    【解决方案1】:

    session.save(X) 的返回类型是一个 Serializable 表示新创建的 X 的标识符,因此它应该返回您的 HibernateTransitInfo 的 id,而不是 HibernateTransitInfo 本身。

    如果我不得不猜测,我会说你想做:

    expect(mockSession.save(hibernateTransitInfo)).andReturn("1")
    

    但是,我很确定这也会起作用,因为您似乎并不关心返回值:

    expect(mockSession.save(hibernateTransitInfo)).andReturn(null)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 2013-10-06
      • 2016-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-30
      相关资源
      最近更新 更多