Я тестирую службу Spring и хочу создать фиктивный сеанс, чтобы мне не приходилось подключаться к реальной базе данных.
К несчастью:
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
TweetServiceTest.java
Session session;
TweetService tweetService = new TweetServiceImpl();
@Before
public void setUp() throws Exception {
session = Mockito.mock(Session.class);
HibernateUtil hibernateUtil = Mockito.mock(HibernateUtil.class);
Mockito.when(hibernateUtil.getSession()).thenReturn(session);
}
HibernateUtil.java
public static Session getSession() {
Session session = null;
try {
session = HibernateUtil.getSessionFactory().getCurrentSession();
if (!session.isOpen()) {
session = HibernateUtil.getSessionFactory().openSession();
}
} catch (Exception e) {
e.printStackTrace();
}
return session;
}