이번 포스트에서는 Flutter 애플리케이션에서 API 통신을 모의(mock)하는 방법 중 하나인 http_mock_adapter
를 사용하는 사례를 소개하고자 합니다.
1. http_mock_adapter란?
http_mock_adapter
는 Flutter에서 HTTP 요청을 모의(mock)해서 API 응답을 테스트하는 용도로 사용할 수 있는 패키지입니다. 이를 통해 애플리케이션 개발 중에 API 서버와의 실제 통신 없이 간편하게 테스트를 진행할 수 있습니다.
2. 사용 사례
플러터 애플리케이션에서 http_mock_adapter
를 사용하는 예제를 살펴보겠습니다.
2.1. 패키지 의존성 추가
pubspec.yaml
파일에 http
와 http_mock_adapter
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
http: ^0.13.4
http_mock_adapter: ^1.3.0
2.2. http 요청의 Mock 설정
다음은 http_mock_adapter
를 활용하여 http 요청을 모의하는 예제 코드입니다.
import 'package:http_mock_adapter/http_mock_adapter.dart';
MockHttpClientAdapter _createMockAdapter() {
final MockHttpClientAdapter mockAdapter = MockHttpClientAdapter();
mockAdapter.onGet(
'https://api.example.com/posts',
reply: (request) => MockResponse(
statusCode: 200,
body: jsonEncode([
{'id': 1, 'title': 'Example Post 1'},
{'id': 2, 'title': 'Example Post 2'},
]),
),
);
return mockAdapter;
}
위 코드에서는 MockHttpClientAdapter
클래스를 사용하여 mock adapter를 생성합니다. onGet
메소드를 사용하여 GET 요청에 응답할 모의 데이터를 설정합니다. 위의 예제에서는 https://api.example.com/posts
에 대한 GET 요청에 응답으로 두 개의 예시 게시물을 반환합니다.
2.3. 애플리케이션에서의 사용
실제 애플리케이션에서 http
패키지를 사용할 때는 이전에 생성한 MockAdapter를 HttpClientAdapter
에 등록하여 사용하면 됩니다.
import 'package:http/http.dart' as http;
import 'package:http_mock_adapter/http_mock_adapter.dart';
void main() async {
final mockAdapter = _createMockAdapter();
final client = http.Client();
client.httpClientAdapter = mockAdapter;
final response = await client.get(Uri.parse('https://api.example.com/posts'));
print(response.body);
client.close();
}
예제에서는 createMockAdapter
함수를 이용해 모의 데이터를 반환하는 MockAdapter를 생성하고, http.Client
의 httpClientAdapter
속성에 MockAdapter를 등록합니다. 그런 다음, client.get
메소드를 사용하여 모의 데이터를 받아와서 출력합니다.
3. 결론
이번 포스트에서는 플러터 애플리케이션에서 http_mock_adapter
를 사용하여 API 통신을 모의하는 방법에 대해 알아보았습니다. http_mock_adapter
를 사용하면 애플리케이션 개발 과정에서 API 호출을 테스트하고 디버깅할 수 있으며, 테스트 코드 작성과 개발 생산성 향상에도 도움이 될 것입니다.
더 많은 정보는 공식 문서를 참고하시기 바랍니다.