[flutter] 플러터에서의 http_mock_adapter를 이용한 네트워크 연결 상태 시뮬레이션
플러터는 앱 개발 시 네트워크 연결 상태를 시뮬레이션하고 테스트하는 중요한 요소입니다. 이를 위해 http_mock_adapter
패키지를 사용할 수 있습니다. http_mock_adapter
는 앱에서 HTTP 요청을 가로채고 가짜 응답을 반환하는 방식으로 동작합니다.
http_mock_adapter
패키지 설치하기
먼저, http_mock_adapter
패키지를 pubspec.yaml
파일의 dependencies
섹션에 추가합니다:
dependencies:
flutter:
sdk: flutter
http: ^0.13.0
http_mock_adapter: ^1.1.0
그리고 패키지를 설치합니다:
$ flutter pub get
네트워크 요청 시뮬레이션하기
http_mock_adapter
를 사용하면 네트워크 요청을 가로챌 수 있고, 가짜 응답을 반환할 수 있습니다. 다음은 플러터 앱에서 http_mock_adapter
를 사용하여 네트워크 연결 상태를 시뮬레이션하는 예제입니다:
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
final mockAdapter = MockAdapter();
@override
Widget build(BuildContext context) {
// 모든 HTTP 요청에 대해 가짜 응답을 반환하도록 설정
mockAdapter.onAny().reply(200, 'Mocked response');
return MaterialApp(
title: 'Mock Adapter Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Mock Adapter Example'),
),
body: Center(
child: ElevatedButton(
child: Text('Make Request'),
onPressed: makeRequest,
),
),
),
);
}
void makeRequest() async {
// `http_mock_adapter`로 생성한 클라이언트 사용
final client = mockAdapter.mockClient;
final response = await client.get(Uri.parse('https://api.example.com/data'));
if (response.statusCode == 200) {
print('Success!');
} else {
print('Request failed :(');
}
}
}
위의 예제는 main()
함수에서 MockAdapter
를 생성하고, 모든 HTTP 요청에 대해 가짜 응답을 반환하도록 설정합니다. 그리고 makeRequest()
함수 내에서 mockClient
를 통해 http_mock_adapter
를 사용하여 네트워크 요청을 수행합니다.
결론
http_mock_adapter
를 플러터 앱 개발에 활용하면 네트워크 연결 상태를 시뮬레이션하고 테스트할 수 있습니다. 이를 통해 앱의 다양한 상황에 대응하는 로직을 검증하고, 안정적인 앱을 개발할 수 있습니다.
참고 자료
http_mock_adapter
패키지: https://pub.dev/packages/http_mock_adapter- Flutter 공식 문서: https://flutter.dev/