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

时间:2017-07-05 12:48:13

标签: java easymock

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

  

java.lang.IllegalStateException:前面的方法调用getLast缺少行为定义(类mypackage.model.MyObj,1)       在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 $$ 347f5838.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行之前,如:

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

而不是:

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

但无济于事。 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

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

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