[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 요청과 응답을 사용하여 테스트를 작성할 수 있습니다.

참고 자료