PowerMock / Mockito 铸造模拟对象不起作用
PowerMock / Mockito casting mocked objects not working
我在测试中初始化:
this.sessionMock = mock(Session.class);
并在方法中测试行:
((MySession)session).setRecordLimits(recordLimits)
给我:
java.lang.ClassCastException:
org.hibernate.Session$$EnhancerByMockitoWithCGLIB$61a329
cannot be cast to myApp.MySession
class:
public class MySession extends AbstractSessionImpl implements EventSource
是 Mockito / Powermock 的问题还是 Hibernate 的问题?有什么解决办法吗?
通过告诉 Mockito/Powermock 你想要模拟 Session
,它无法知道你想要模拟的 class 实际上是 MySession
.
由于您的代码实际上依赖于 MySession
,您应该这样做
this.sessionMock = mock(MySession.class);
改为
我在测试中初始化:
this.sessionMock = mock(Session.class);
并在方法中测试行:
((MySession)session).setRecordLimits(recordLimits)
给我:
java.lang.ClassCastException:
org.hibernate.Session$$EnhancerByMockitoWithCGLIB$61a329
cannot be cast to myApp.MySession
class:
public class MySession extends AbstractSessionImpl implements EventSource
是 Mockito / Powermock 的问题还是 Hibernate 的问题?有什么解决办法吗?
通过告诉 Mockito/Powermock 你想要模拟 Session
,它无法知道你想要模拟的 class 实际上是 MySession
.
由于您的代码实际上依赖于 MySession
,您应该这样做
this.sessionMock = mock(MySession.class);
改为