2010-10-02 3 views
4

Любая идея, почему следующий издевательский код не работает?Проблема с издевательской сессией спящего режима с использованием Mockito

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

Оператор thenReturn не компилируется. "Метод thenReturn (Session) в типе OngoingStubbing не применим для аргументов (Session)" Но почему это не применимо? Я думаю, что я правильно понял импорт.

ответ

9

Это потому, что тип, фактически возвращенный SessionFactory.getCurrentSession(), составляет org.hibernate.classic.Session, что является подтипом org.hibernate.Session. Вам нужно будет изменить свой макет на правильный тип:

org.hibernate.classic.Session session = Mockito.mock(org.hibernate.classic.Session.class);