플러터(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
http
package: https://pub.dev/packages/httphttp_mock_adapter
package: https://pub.dev/packages/http_mock_adapter- Flutter official website: https://flutter.dev