Проблемы с имитацией SessionFactory в Hibernate с использованием Mockito - PullRequest
4 голосов
/ 02 октября 2010

Есть идеи, почему следующий код не работает?

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)» Но почему это не применимо? Я думаю, что импорт рассчитан правильно.

1 Ответ

9 голосов
/ 02 октября 2010

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

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