2010-10-02 80 views
4

任何想法爲什麼下面的mocking代碼不起作用?使用Mockito模擬hibernate的SessionFactory的問題

org.hibernate.SessionFactory sessionFactory = Mockito.mock(SessionFactory.class); 
org.hibernate.Session session = Mockito.mock(Session.class); 
Mockito.when(sessionFactory.getCurrentSession()).thenReturn(session); 

thenReturn語句不編譯。 「然後在類型OngoingStub中返回(Session)的方法不適用於參數(Session)」 但是,它爲什麼不適用?我想我有正確的進口計算。

回答

9

這是因爲實際上由SessionFactory.getCurrentSession()返回的類型是org.hibernate.classic.Session,這是org.hibernate.Session的子類型。您需要將您的模擬更改爲正確的類型:

org.hibernate.classic.Session session = Mockito.mock(org.hibernate.classic.Session.class); 
相關問題