我在测试中初始化:
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);
代替
关于java - PowerMock/Mockito转换模拟对象不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28041721/