4

知道为什么以下模拟代码不起作用吗?

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)” 但是,为什么它不适用?我想我已经正确计算了进口。

4

1 回答 1

9

这是因为 is 实际返回的类型SessionFactory.getCurrentSession()org.hibernate.classic.Session的子类型org.hibernate.Session。您需要将模拟更改为正确的类型:

org.hibernate.classic.Session session = Mockito.mock(org.hibernate.classic.Session.class);
于 2010-10-02T15:51:14.837 回答