Java powermock中出现意外的方法调用异常

Java powermock中出现意外的方法调用异常,java,unit-testing,testng,powermock,easymock,Java,Unit Testing,Testng,Powermock,Easymock,我对我的项目有一系列的要求 Impl.execute()-->Helper.help()-->Proxy.doOperation() 我正在尝试在PowerMock和TestNG中为Impl.execute()执行测试用例。我越来越不正常了 execute(ImplTest) Time elapsed: 0.391 sec <<< FAILURE! java.lang.AssertionError: Unexpected method call Proxy.doOpera

我对我的项目有一系列的要求

Impl.execute()-->Helper.help()-->Proxy.doOperation()

我正在尝试在PowerMock和TestNG中为Impl.execute()执行测试用例。我越来越不正常了

execute(ImplTest)  Time elapsed: 0.391 sec  <<< FAILURE!
java.lang.AssertionError: 
Unexpected method call Proxy.doOperation({clientId=123456}, ""):
Proxy.doOperation({}, null): expected: 1, actual: 0
at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:44)
at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:85)
at org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(ClassProxyFactory.java:94)
at com.xxx.xxx.xxx.sync.services.Proxy$$EnhancerByCGLIB$$1937be76.doOperation(<generated>)
at com.xxx.xxx.xxx.sync.services.helper.Helper.getIdFromClient(Helper.java:39)
at com.xxx.xxx.xxx.sync.services.impl.Impl.execute(Impl.java:97)
at com.xxx.xxx.xxx.sync.services.impl.ImplTest.execute(ImplTest.java:130)
}

请帮忙试试这个

Proxy regProxy = PowerMock.createNiceMock(Proxy.class);
当您在链式方法中执行
EasyMock.createMock()
时,它会失败,因为EasyMock无法识别将在其他地方调用此方法,但是当我们执行
EasyMock.createniemock()
时,此意外方法上的模拟不会失败,并且可以根据需要执行模拟

事实上,我自己在这个错误上花了大约一个星期的时间,当我找到这个解决方法时,这就像是一种祝福

希望这有帮助!
祝你好运

这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论。@Raptor看起来像是我的答案。可能不太好,因为有点短。但肯定不值得你的评论。@Vihar请扩大你的答案,解释为什么这是OP问题的解决方案。@Raptor将在以后的文章中小心完成answers@Vihar是的,expect中有一个问题,因为我使用的是mockito的Matchers,当使用EasyMock的anyObject时重新解决了这个问题。感谢您在解决原始问题时提供的帮助。使用可编译的代码示例可以更轻松地回答您的问题。请将您的代码作为演示您的问题的示例发布。目前,由于缺少数据(
Impl
Proxy
定义等),我们无法编译。但请不要将大量代码复制/粘贴到您的问题中,请花时间为我们创建一个最小的示例。
Proxy regProxy = PowerMock.createNiceMock(Proxy.class);