我在测试中初始化:
this.sessionMock = mock(Session.class);
在测试的方法中,该行:
((MySession)session).setRecordLimits(recordLimits)
给我:
java.lang.ClassCastException:
org.hibernate.Session$$EnhancerByMockitoWithCGLIB$$8561a329
cannot be cast to myApp.MySession
班级:
public class MySession extends AbstractSessionImpl implements EventSource
这是Mockito/Powermock的问题还是Hibernate的问题?有什么解决方法吗?
通过告诉 Mockito/Powermock 你想模拟Session
,它没有办法知道你想模拟的类实际上是MySession
。
由于您的代码实际上依赖于MySession
,您应该这样做
this.sessionMock = mock(MySession.class);
相反