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

java.lang.IllegalStateException: missing behavior definition for the preceding method call getLast(...)

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

java.lang.IllegalStateException: missing behavior definition for the preceding method call getLast(class mypackage.model.MyObj, 1) at org.easymock.internal.MockInvocationHandler.invoke(MockInvocationHandler.java:43) at org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:73) at org.easymock.internal.ClassProxyFactory$MockMethodInterceptor.intercept(ClassProxyFactory.java:92) at mypackage.service.MyService$$EnhancerByCGLIB$7f5838.getLast() at mypackage.controller.MyController.myControllerMethod(MyController.java:265) at mypackage.controller.MyController.myControllerMethodTest(MyControllerTest.java:207)

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

263. public void myControllerMethod(Integer id) {
264.   String myString = null;
265.   MyObj myObj = (MyObj) myService.getLast(MyObj.class, id);
266.   try {
267.     myString = myObj.getMyProp().getMyObj();
268.   } catch (Exception e) {
269.     myString = "";
270.   }

MyControllerTest.java 只是调用 myControllerMethod,例如:

207. myController.myControllerMethod(1);

我已经尝试在第 207 行之前添加一个 "expectation",例如:

206. EasyMock.expect(myServiceMock.getLast(MyObj.class, 1));

而不是:

206. EasyMock.expect(myServiceMock.getLast(MyObj.class, 1)).andReturn(new MyObj());

但无济于事。 有谁能帮帮我吗?

好的,我用 EasyMock.replay(myServiceMock) 解决了,正如我在 this 示例中找到的那样。

这是之前插入的期望的一种"activation"。