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"。
我已经在 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"。