[flutter] http_mock_adapter를 활용한 플러터 애플리케이션의 안정성 테스트 방법
플러터 애플리케이션을 개발하는 동안 API 통신 등 외부 의존성에 의존하는 경우가 많습니다. 이러한 경우 실제 API 호출을 대신하여 테스트할 수 있는 방법이 필요합니다. 이때 flutter_http_mock_adapter
패키지를 사용하면 API 응답을 가상화하여 안정성 테스트를 수행할 수 있습니다.
flutter_http_mock_adapter란?
flutter_http_mock_adapter
는 플러터 애플리케이션에서 네트워크 요청을 가로채고 테스트용 응답과 매핑하는 기능을 제공하는 패키지입니다. 이 패키지를 사용하면 실제 API 호출 없이 애플리케이션의 외부 의존성을 테스트할 수 있습니다.
설치
프로젝트의 pubspec.yaml
파일에 http_mock_adapter
패키지를 추가합니다.
dependencies:
flutter_http_mock_adapter: ^1.0.0
사용 방법
-
테스트용 응답 생성
API 호출에 대한 응답을 생성해야 합니다. 다음은
dio
라이브러리의 인터셉터 API를 사용하는 예입니다.import 'package:dio/dio.dart'; import 'package:flutter_http_mock_adapter/flutter_http_mock_adapter.dart'; void main() { final Dio dio = Dio(); final DioAdapter dioAdapter = DioAdapter(); dio.httpClientAdapter = dioAdapter; dioAdapter.onAnyRequest().reply(200, {'message': 'Hello world!'}); // API 호출될 때 테스트용 응답이 반환됩니다. dio.get('/test').then((response) { print(response.data); // {'message': 'Hello world!'} }); }
-
테스트 시 활성화
테스트를 수행하는 영역에서
Mockdio
클래스를 사용하여HttpClientAdapter
를 설정합니다.import 'package:dio/dio.dart'; import 'package:flutter_http_mock_adapter/flutter_http_mock_adapter.dart'; void main() { final Dio dio = Dio(); final MockDioAdapter mockDioAdapter = MockDioAdapter(); dio.httpClientAdapter = mockDioAdapter; final response = await dio.get('/test'); print(response.data); // {'message': 'Hello world!'} }
정리
flutter_http_mock_adapter
패키지를 사용하면 테스트용 응답을 생성하여 플러터 애플리케이션의 안정성을 테스트할 수 있습니다. 이를 통해 실제 API를 호출하는 외부 의존성에 의존하지 않고도 효과적인 테스트를 수행할 수 있습니다.