私はすでにthisのような同様の質問を読んでいますが、私は問題を解決できません。 私は既存のクラスを変更したと私はアリとそれを構築しようとしたとき、私は、次のユニットテストを取得するには、エラーを失敗しました:MyController.java
でjava.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。 誰でも助けてくれますか?
はい。まず、必要なものすべてを記録します。次にリプレイモードに入ります。 BDDの "Given"(リプレイ) "When"(モックへの呼び出し) "Then"(確認)が表示されます。 – Henri