テストのサービスである HttpServletRequest をモックアウトしました。
request = createNiceMock(HttpServletRequest.class);
service = createStrictMock(DataProviderService.class);
期待値を設定することにより、コントローラーがサービスによってスローされた例外を処理する動作を確認しています。
expect(service.getData(someObject)).andThrow(new MyException());
replay(endPoint);
私は次と同じことを確認します:
ModelAndView mav = controller.provideDefaultScreen(request);
verify(service);
私のコントローラーはサービスを呼び出し、例外の場合はリクエストに例外の詳細を設定します
request.setAttribute("exceptionMessage", e.getMessage());
この行はエラーを吐き出しています:
java.lang.IllegalStateException: missing behavior definition for the preceding method call:
HttpServletRequest.getAttribute("someAttributeCheckedEarlier")
Usage is: expect(a.foo()).andXXX()
私は、コントローラーが要求に対して何をするかについてはほとんど気にしていません。サービスによってスローされた例外を消費する必要があることだけを心配しています。それに応じて、私はニックモックとしてリクエストを作成しました。それでもこのエラーが発生するのはなぜですか?