3

私はMockitoを使ってモックHttpServletRequestHttpServletResponse. 作成中のモックリクエストにCookieを追加したい。どうすればそうできますか?

また、サーバー側で応答に Cookie を設定しています。サーバーから送信されたモック応答から Cookie を取得するにはどうすればよいですか?

4

5 に答える 5

1

リクエストの場合: 配列を構築し、Cookies必要なものを追加してから、動作をモックに追加します。

final Cookies[] cookies = new Cookies[] { ... };

final HttpServletRequest request = mock(HttpServletRequest.class);
given(request.getCookies()).thenReturn(cookies);

... pass to controller/servlet etc ...

応答については、モックを作成してから、 を使用して に渡された実際の Cookie をキャプチャすることにより、addCookie呼び出しを検証します。ArgumentCaptoraddCookie

final ArgumentCapor<Cookie> captor = ArgumentCaptor.forClass(Cookie.class);

verify(response).addCookie(captor.capture());

final List<Cookie> cookies = captor.getValue();

... perform asserion on cookies ...

または、予想される Cookie を作成して確認します。

final Cookie expectedCookie = ...

verify(response).addCookie(expectedCookie);

個人的には を使用しないことを好みArgumentCaptorますが、それは主にテストに依存します。

于 2013-06-11T09:14:53.810 に答える