我在测试中初始化:

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/

10-10 19:31