2017-07-05 12 views
0

私はすでにthisのような同様の質問を読んでいますが、私は問題を解決できません。 私は既存のクラスを変更したと私はアリとそれを構築しようとしたとき、私は、次のユニットテストを取得するには、エラーを失敗しました:MyController.javajava.lang.IllegalStateException:先行するメソッド呼び出しの動作定義がありませんgetLast(...)

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$$347f5838.getLast() at mypackage.controller.MyController.myControllerMethod(MyController.java:265) at mypackage.controller.MyController.myControllerMethodTest(MyControllerTest.java:207)

(エラーがラインにあるように私は、コードの一部を追加しました265):私はすでに、 "期待"、Bを追加しようとしました

207. myController.myControllerMethod(1); 

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を呼び出します

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

いうより:

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

しかし無駄にように、ライン207をEFORE。 誰でも助けてくれますか?

答えて

0

私はthisの例のようにEasyMock.replay(myServiceMock)で解決しました。

これは以前に挿入された期待の「活性化」の一種です。

+1

はい。まず、必要なものすべてを記録します。次にリプレイモードに入ります。 BDDの "Given"(リプレイ) "When"(モックへの呼び出し) "Then"(確認)が表示されます。 – Henri

関連する問題