[flutter] 플러터에서의 http_mock_adapter를 활용한 특정 요청에 대한 응답 가로채기

플러터(Flutter)는 강력한 HTTP 클라이언트 패키지를 제공하여 서버와의 통신을 쉽게 구현할 수 있습니다. 그리고 http_mock_adapter 패키지를 사용하면 서버 응답을 가로채고 모의 응답을 제공할 수 있습니다. 이번 포스트에서는 http_mock_adapter를 활용하여 특정 요청에 대한 응답을 가로채는 방법을 알아보겠습니다.

1. http_mock_adapter 패키지 추가하기

먼저, 프로젝트의 pubspec.yaml 파일에 httphttp_mock_adapter 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가하세요.

dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.3
  http_mock_adapter: ^1.0.0

그리고 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드받으세요.

2. MockAdapter 생성하기

특정 요청에 대한 응답을 가로채기 위해서는 MockAdapter를 생성해야 합니다. 다음과 같이 http 패키지의 ClientMockAdapter를 함께 사용하여 MockAdapter를 생성할 수 있습니다.

import 'package:http/http.dart' as http;
import 'package:http_mock_adapter/http_mock_adapter.dart';

final mockAdapter = MockAdapter();
final client = http.Client();

3. 특정 요청의 응답 가로채기

이제 MockAdapter를 사용하여 특정 요청의 응답을 가로챌 수 있습니다. onGet, onPost, onPut, onDelete 메서드를 사용하여 각각 GET, POST, PUT, DELETE 메서드에 대한 응답을 설정할 수 있습니다.

예를 들어, /api/user 엔드포인트에 대한 GET 요청에 대한 응답을 가로채고 싶다면 다음과 같이 설정할 수 있습니다.

mockAdapter.onGet('/api/user').reply(200, {'name': 'John', 'age': 30});

위의 코드에서는 /api/user 엔드포인트에 대한 GET 요청에 대해 200 상태 코드와 { 'name': 'John', 'age': 30 }을 응답으로 설정하고 있습니다.

4. MockAdapter 적용하기

마지막으로, MockAdapterhttp 패키지의 Client에 적용해야 합니다. 다음과 같이 MockAdapterclient의 어댑터로 설정하면 가로챈 응답이 자동으로 반환됩니다.

final clientWithMock = HttpClientWithMockAdapter.build(mockAdapter);
final httpWithMock = http.Client();

위의 코드에서는 clientWithMock라는 새로운 클라이언트를 생성하고, httpWithMock라는 http 패키지의 Client를 생성하여 MockAdapter를 적용하고 있습니다.

이제 httpWithMock를 통해 요청을 보내면 가로챈 응답이 반환됩니다.

결론

http_mock_adapter를 사용하면 플러터 애플리케이션에서 특정 요청에 대한 응답을 가로챌 수 있습니다. 이를 통해 서버 응답을 모방하거나 특정 시나리오를 시뮬레이션하여 테스트할 수 있습니다. http_mock_adapter의 자세한 사용법은 공식 문서를 참조하시기 바랍니다.

References