私はMockitoを使ってモックHttpServletRequest
とHttpServletResponse
. 作成中のモックリクエストにCookieを追加したい。どうすればそうできますか?
また、サーバー側で応答に Cookie を設定しています。サーバーから送信されたモック応答から Cookie を取得するにはどうすればよいですか?
リクエストの場合: 配列を構築し、Cookies
必要なものを追加してから、動作をモックに追加します。
final Cookies[] cookies = new Cookies[] { ... };
final HttpServletRequest request = mock(HttpServletRequest.class);
given(request.getCookies()).thenReturn(cookies);
... pass to controller/servlet etc ...
応答については、モックを作成してから、 を使用して に渡された実際の Cookie をキャプチャすることにより、addCookie
呼び出しを検証します。ArgumentCaptor
addCookie
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
ますが、それは主にテストに依存します。