2011-11-08 7 views
3

以下のテストでテストに失敗しました。具体的には、 "期待する(mockSession.save(hibernateTransitInfo))。andReturn(hibernateTransitInfo)" とは、 "互換性のない戻り型"Hibernate + GroovyTestcase:以下のコードでエラーを解消できません。

テストコード

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の識別子を表すSerializableなので、HibernateTransitInfo自体ではなく、あなたのHibernateTransitInfoのIDを返すべきです。

私は推測していた場合、私はあなたがしたいと言うでしょう:

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

あなたは、戻り値を気にすることは表示されませんので、しかし、私は、これもうまくいくことをかなり確信しては、 :

expect(mockSession.save(hibernateTransitInfo)).andReturn(null) 
関連する問題