[java] Mockito를 사용하여 Http 요청과 응답을 모킹하는 방법은?
Mockito는 자바에서 자동화된 테스트를 위해 사용되는 강력한 mocking 프레임워크입니다. 이를 통해 Http 요청과 응답을 모킹하여 테스트를 작성할 수 있습니다.
1. Http 요청 모킹하기
Http 요청을 모킹하기 위해 Mockito.when()
메서드를 사용합니다. 아래 예제는 GET 요청을 모킹하는 방법을 보여줍니다.
import static org.mockito.Mockito.*;
// ...
HttpURLConnection connection = mock(HttpURLConnection.class);
when(connection.getResponseCode()).thenReturn(200);
위 예제에서는 HttpURLConnection
클래스의 인스턴스를 모킹하고, getResponseCode()
메서드를 호출할 때 200을 반환하도록 설정하였습니다.
2. Http 응답 모킹하기
Http 응답을 모킹하기 위해서는 Mockito.doAnswer()
메서드를 사용해야 합니다. 아래 예제는 POST 요청에 대한 응답을 모킹하는 방법을 보여줍니다.
import static org.mockito.Mockito.*;
// ...
HttpURLConnection connection = mock(HttpURLConnection.class);
doAnswer(invocation -> {
OutputStream os = (OutputStream) invocation.getArguments()[0];
os.write("Response".getBytes());
os.flush();
return null;
}).when(connection).getOutputStream();
위 예제에서는 HttpURLConnection
클래스의 getOutputStream()
메서드를 호출할 때, 응답으로 “Response” 문자열을 반환하도록 설정하고 있습니다.
이렇게 모킹된 Http 요청과 응답을 사용하여 테스트를 작성할 수 있습니다.
참고 자료
- Mockito 공식 문서: https://site.mockito.org/
- Mockito API 문서: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html