java.lang.IllegalStateException:前面的方法调用getLast(…)缺少行为定义

java.lang.IllegalStateException:前面的方法调用getLast(…)缺少行为定义,java,easymock,Java,Easymock,我已经在网上读过类似的问题,但我无法解决我的问题。 我已经修改了一个现有的类,当我尝试用ant构建它时,我得到以下单元测试失败错误: java.lang.IllegalStateException:前面的方法调用getLast(类mypackage.model.MyObj,1)缺少行为定义 位于org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43) 位于org.easymock.inter

我已经在网上读过类似的问题,但我无法解决我的问题。 我已经修改了一个现有的类,当我尝试用ant构建它时,我得到以下单元测试失败错误:

java.lang.IllegalStateException:前面的方法调用getLast(类mypackage.model.MyObj,1)缺少行为定义 位于org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43) 位于org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:73) 位于org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(ClassProxyFactory.java:92) 在mypackage.service.MyService$$enhancerbyglib$$347f5838.getLast()中 在mypackage.controller.MyController.myControllerMethod(MyController.java:265)中 位于mypackage.controller.MyController.myControllerMethodTest(MyControllerTest.java:207)

MyController.java
中,我添加了一段代码,如(错误在第265行):

MyControllerTest.java
只需调用
myControllerMethod
,如:

207. myController.myControllerMethod(1);
我已经尝试在第207行之前添加一个“期望”,如:

206. EasyMock.expect(myServiceMock.getLast(MyObj.class, 1));
而不是:

206. EasyMock.expect(myServiceMock.getLast(MyObj.class, 1)).andReturn(new MyObj());
但是没有用。
有人能帮我吗?

好的,我用示例中的
EasyMock.replay(myServiceMock)
解决了这个问题


这是对前面插入的期望的一种“激活”。

是的。首先,你记录下你需要的一切。然后进入重播模式。您可以将其视为BDD“给定”(回放)“何时”(调用模拟)“然后”(验证)。
206. EasyMock.expect(myServiceMock.getLast(MyObj.class, 1)).andReturn(new MyObj());