知道为什么下面的模拟代码不起作用?
org.hibernate.SessionFactory sessionFactory = Mockito.mock(SessionFactory.class);
org.hibernate.Session session = Mockito.mock(Session.class);
Mockito.when(sessionFactory.getCurrentSession()).thenReturn(session);
thenReturn语句无法编译。 “OngoingStubbing类型中的方法thenReturn(Session)不适用于参数(Session)” 但是,为什么它不适用?我想我的输入是正确的。
答案 0 :(得分:9)
这是因为SessionFactory.getCurrentSession()
实际返回的类型是org.hibernate.classic.Session
,它是org.hibernate.Session
的子类型。您需要将模拟更改为正确的类型:
org.hibernate.classic.Session session = Mockito.mock(org.hibernate.classic.Session.class);