플러터(Flutter)는 강력한 HTTP 클라이언트 패키지를 제공하여 서버와의 통신을 쉽게 구현할 수 있습니다. 그리고 http_mock_adapter 패키지를 사용하면 서버 응답을 가로채고 모의 응답을 제공할 수 있습니다. 이번 포스트에서는 http_mock_adapter를 활용하여 특정 요청에 대한 응답을 가로채는 방법을 알아보겠습니다.
1. http_mock_adapter 패키지 추가하기
먼저, 프로젝트의 pubspec.yaml 파일에 http와 http_mock_adapter 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 패키지를 추가하세요.
dependencies:
flutter:
sdk: flutter
http: ^0.13.3
http_mock_adapter: ^1.0.0
그리고 터미널에서 flutter packages get 명령어를 실행하여 패키지를 다운로드받으세요.
2. MockAdapter 생성하기
특정 요청에 대한 응답을 가로채기 위해서는 MockAdapter를 생성해야 합니다. 다음과 같이 http 패키지의 Client와 MockAdapter를 함께 사용하여 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 적용하기
마지막으로, MockAdapter를 http 패키지의 Client에 적용해야 합니다. 다음과 같이 MockAdapter를 client의 어댑터로 설정하면 가로챈 응답이 자동으로 반환됩니다.
final clientWithMock = HttpClientWithMockAdapter.build(mockAdapter);
final httpWithMock = http.Client();
위의 코드에서는 clientWithMock라는 새로운 클라이언트를 생성하고, httpWithMock라는 http 패키지의 Client를 생성하여 MockAdapter를 적용하고 있습니다.
이제 httpWithMock를 통해 요청을 보내면 가로챈 응답이 반환됩니다.
결론
http_mock_adapter를 사용하면 플러터 애플리케이션에서 특정 요청에 대한 응답을 가로챌 수 있습니다. 이를 통해 서버 응답을 모방하거나 특정 시나리오를 시뮬레이션하여 테스트할 수 있습니다. http_mock_adapter의 자세한 사용법은 공식 문서를 참조하시기 바랍니다.
References
httppackage: https://pub.dev/packages/httphttp_mock_adapterpackage: https://pub.dev/packages/http_mock_adapter- Flutter official website: https://flutter.dev